line

From Esolang
Jump to navigation Jump to search
Line
Designed by Relt
Appeared in 2021
Memory system Cell based
Dimensions Two dimensional
Computational class Turing complete
Reference implementation Unimplemented
File extension(s) currently none

Line is a 2d cell-based programming language that is structured on lines and turns.

Syntax

Program flow

A line is a path that the Cursor follows every step 1 grid unit forward.

1 2 3 4 5

The cursor will turn along with the line

1 2 3 4

The cursor will merge into another line with this type of intersection

Both of these situations will end up with the cursor moving up

Instructions

Tape operations

The cursor has its own memory tape (like in Brainfuck)

+ and - equivalents are

going through this diagonal line will increment the selected cell
and going through this diagonal line with decrement it

The cursor detects what type of curve its going through, and will act accordingly

These instructions work in every 4 directions, meaning that all of these:

will increment the selected cell

Both instructions can run multiple times in a row like this:

Every step, the current cell will get incremented. The brainfuck equivalent of this is +++


Moving along the tape can be done with these curves

>
When the cursor detects that it has gone through a curve like this, it will move the pointer to the right
<
When the cursor detects that it has gone through a curve like this, it will move the pointer to the left

Conditional turn

When the cursor encounters this type of curve, it will turn right if the current cell is 0, otherwise, it will turn left.

User input

When the cursor encounters this type of curve, it will ask the user for a number
When the cursor encounters this type of curve, it will print the current cell as a number

Brainfuck compatibility

While this language is 100% brainfuck compatible, it also offers features that come from the way its structured, like making unconditional jumps to other parts of the code.


Example programs

Addition

Multiplication