↑110010000100110110010

From Esolang
Jump to navigation Jump to search
Not to be confused with ↓110010000100110110010.

↑110010000100110110010 is an esolang by User:PythonshellDebugwindow.

Memory

↑110010000100110110010 uses data (initialized to an right-unbounded infinite tape of zeros), a data pointer (initialized to 0), a command pointer (initialized to nil), and a jump offset (initialized to 0), all of which are unbounded signed integers (or, in the data's case, a right-unbounded tape of them).

Commands

The command is on the left, and the value of the command pointer is on the top.

Programming in this language takes a lot of trial and error, and sometimes simple effects can take 3 commands. Due to the command pointer, and the sometimes not-so-obvious ways to change it as desired, you have to go through the whole program character-by-character to find out what any one character does.

Undefined behaviour

It's undefined behaviour when the data pointer goes negative, or when a jump goes out-of-bounds.

Snippets

To set the command pointer to 1 if it's at nil:

↨↑↓

Examples

One-time cat program

↨↓↑↓↕

XKCD Random Number

↑↑↑↑↕↕

Computational class

Unbounded data storage is available, so memory isn't an issue for Turing-completeness; the real problem is constructing a while loop (to effectively use the jump offset, garbage output must be produced (e.g., it's print then double), but this doesn't really matter), but if the command pointer can be effectively altered, which I suspect it can be, then there's no problem there, and the language is quite likely Turing-complete.

External resources