Artemis
Artemis is a simple translation of reversible &brainfuck with support for procedure definitions. Artemis is concatenative and reversible. It was discovered by User:Orby in May of 2020.
Definition
Artemis operates on a right unbounded tape of unbounded cells. In addition to a data pointer, Artemis has an indirection count.
Command | Action |
---|---|
i | Increment the current cell, then increment the indirection count. |
d | Decrement the current cell. |
{ | Decrement indirection count, then jump after matching } if the cell pointed to by the current cell is zero. |
} | Jump after matching { if the cell pointed to by the current cell is zero. |
: | Begin/end procedure definition. The next token is the name of the procedure. |
Invoking d when the current cell is zero, and invoking { when the indirection count is zero have undefined effects.
Definition of current cell
The value of the current cell is defined as the value of the data pointer if the indirection count is zero. If the indirection count is one, then the value of the current cell is defined as the value of the cell pointed to by the data pointer. If the indirection count is two, then the value of the current cell is defined as the value of the cell pointed to by the cell pointed to by the data pointer, and so on.
Relationship to &brainfuck
All Artemis commands must be separated by white-space. Artemis exhibits the following simple translation to reversible &brainfuck
Artemis | &brainfuck |
---|---|
i | >* |
d | < |
{ | &[ |
} | ] |
&brainfuck | Artemis |
---|---|
> | i { } |
< | d |
* | d i |
& | { } |
[ | d i { |
] | } |
Defining procedures
The following example defines procedures for something similar to Reversible Brainfuck operations. The :
defines the beginning of a procedure, followed by the name of the procedure, followed by the definition, and finally it is terminated with :
. For example
: > i { } : : < d : : + d i > { } : : - d i < { } : : [ d i { : : ] } :
See also
- &brainfuck is the language that inspired Artemis.
- Simple translation is a concept that features prominently in this article.