InfiniTick

From Esolang
Jump to navigation Jump to search

Description

InfiniTick is an esolang created in 2017. It is a descendant of the Tick language. It twist is that the program runs in an infinite loop, making it hard to stop. It runs on an infinite memory of tape cells.

How the program runs

The commands are executed from the start of the tape.

>>+*>>-<-
^

When the executor reaches the end of the tape, it loops back to the beginning.

>>+*>>-<-
^<------^

Commands

Command Description
> Move the data selector right
< Move the data selector left
+ Increment the current data cell. Truncate overflow: 255+1=0
- Decrement the current data cell. Truncate underflow: 0-1=255
* Add the ASCII value of memory cell at the data selector to the output stream
& Raise an error, i.e. stop the loop
/ Skip the next command if the current data cell value is zero
\ Skip the next command if the current data cell value is non-zero

Examples

Hello, world!

This program outputs the message “Hello world!” once and terminates the program by aid of an error:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*+++++++++++++++++++++++++++++*+++++++**+++*>+++++++++++++++++++++++++++
+++++*<++++++++*>+++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++*+++*>++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*>++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++*>+++++++++++++++++++++++++++++++++*&

ASCII character list

The following program prints all ASCII characters in their codes' natural order, helming the termination by conditionally checking for a non-zero current cell value:

*+\&

Interpreter

  • Common Lisp implementation of the InfiniTick programming language.