We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Dimensional

From Esolang
(Redirected from BoredKat)
Jump to navigation Jump to search
Dimensional
Paradigm(s) procedural, imperative
Designed by User:NutronStar45
Appeared in 2022
Type system bytes
Memory system cell-based
Dimensions theoretically infinite-dimensional
Computational class Turing complete
Reference implementation Python interpreter by User:Bangyen
File extension(s) .dim

Dimensional is an esoteric programming language created by User:NutronStar45, where you can have infinite dimensions of infinite dimensions of infinite dimensions of infinite dimensions of ... of infinite dimensions of bytes.

Structure

  • There are infinite pointers, which in default all points to 0 in all axes
  • ...
  • A 4-slot has a 4-pointer
  • The 4-pointer is pointing at a 3-slot
  • A 3-slot has a 3-pointer
  • The 3-pointer is pointing at a 2-slot
  • A 2-slot has a 2-pointer
  • The 2-pointer is pointing at a 1-slot
  • The 1-slot contains a byte

Terminology

n-slot

For n > 1, an n-slot is an infinite-dimensional space with each slot containing an n-pointer.

n-pointer

For n > 1, an n-pointer is an infinite-dimensional pointer with each pointer containing an (n-1)-slot.

1-slot

A 1-slot contains an unsigned byte.

Pointer axis

The operations are done in (pointer axis)-pointer/-slot.

Value

The value of the 1-slot being pointed at.

Syntax

Negative dimensions are prefixed with a tilde (~) instead of a hyphen (-).

In comment mode, all characters will be ignored.

There 20 instructions in Dimensional:

Syntax Action
>DIMENSION Increases the <pointer axis>-pointer's coordinate on the DIMENSION axis by 1.
<DIMENSION Decreases the <pointer axis>-pointer's coordinate on the DIMENSION axis by 1.
> Increases the <pointer axis>-pointer's coordinate on <value> axis by 1.
< Decreases the <pointer axis>-pointer's coordinate on <value> axis by 1.
+ Increases the value by 1.
- Decreases the value by 1.
:CHAR Sets the value to the equivalent ASCII code.
=HEX Sets the value to the specified 2-digit hexadecimal number, case-insensitive.
. Prints the pointer value in ASCII.
, Accepts a character between \x00 and \xff and sets the value to that character in ASCII.
d Accepts a number written in decimal and set the value to that number.
x Accepts a number written in hexadecimal and set the value to that number.
[ NOP if the value isn't 0, or skips past the matching ] otherwise.
] Jumps back to the matching [.
{DIMENSION NOP if the <pointer axis>-pointer's coordinate on the DIMENSION axis isn't 0, or skips past the matching } otherwise.
} Jumps back to the matching {.
?DIMENSION Sets the value to the remainder of the <pointer axis>-pointer's coordinate on the DIMENSION axis divided by 256.
!DIMENSION Sets the <pointer axis>-pointer's coordinate on the DIMENSION axis to 0.
$AXIS Sets the pointer axis to AXIS.
* Toggles comment mode.

Implementations

A Python interpreter by User:Bangyen.

Changelog

3.0

  • Removed "meta"
  • Added infinite infinite dimensions
  • Removed the board
  • Removed the metapointer
  • Changed the pointer to n-pointers
  • Changed the worlds to n-slots
  • Renamed pointer value to value
  • The suffix of negative dimensions is now ~ instead of _
  • Removed the m command
  • Added the $AXIS command
  • Added the d command
  • Added the x command

2.0

  • Added the concept of "meta"
  • Added the metapointer
  • Added the new board and changed the original board to worlds
  • Added notation
  • Added meta/non-meta state
  • Added negative dimensions
  • Added the m instruction