LLL

From Esolang
Jump to: navigation, search
This article is a stub, which means that it is not detailed enough and needs to be expanded. Please help us by adding some more information.

LLL is an esoteric programming language designed by Lode Vandevenne in 2012. Programs in LLL are made from a circuit of logic components. Special components allow console input and output. A graphical mode where the circuit can be seen in action is also possible. In theory, an existing CPU could be built in this given its logic diagram.

The language itself is textual, the logic circuits are made from a 2D grid of ASCII characters. Characters are slightly lower level than logic gates.

Every tick, the language updates the state of every part based on neighbor parts. Parts can exist out of multiple ASCII characters. A signal requires one tick per part it goes through.

Instructions

The language has no instructions, instead it has cells from which logic gates and other parts can be made.

Cell Description
space, . Isolator
* Wire
+, x Wire crossing
b Backplane connection
^, >, v, < Diode
m, ], w, [ Inverter
i, I, j input
o, O Output
09 Mark input or output for console I/O and other special signals
r XOR wire
c Counter wire
d Delay wire
" Comment

With wires, diodes and invertors alone, every logic gate can be made, including XOR. The "r" and "c" cells are optional, anything these can do, could also be created from the other cells, but they are added to make them smaller, faster and more convenient.

Example program

The following program displays Hello world! on the console.

         *o3  *o0  *o2  *o2  *o0  *o5  *o0  *o0  *o1  *o2  *o2  *o0 
         *    *    *    *    *    *    *    *    *    *    *    *   
         *o6  *o2  *o3  *o3  *o1  *    *o1  *o1  *o4  *o3  *o5  *o5 
         *    *    *    *    *    *    *    *    *    *    *    *   
         *    *o5  *o5  *o5  *o2  *    *o2  *o2  *o5  *o5  *o6  *   
         *    *    *    *    *    *    *    *    *    *    *    *   
         *    *o6  *o6  *o6  *o3  *    *o4  *o3  *o6  *o6  *    *   
         *    *    *    *    *    *    *    *    *    *    *    *   
         *    *    *    *    *o5  *    *o5  *o5  *    *    *    *   
         *    *    *    *    *    *    *    *    *    *    *    *   
         *    *    *    *    *o6  *    *o6  *o6  *    *    *    *   
         *    *    *    *    *    *    *    *    *    *    *    *   
         *    *    *    *    *    *    *    *    *    *    *    *   
   **]*  *    *    *    *    *    *    *    *    *    *    *    *   
 I**>>*]***>>***>>***>>***>>***>>***>>***>>***>>***>>***>>***>>***>>***O0
         O    O    O    O    O    O    O    O    O    O    O    O   
         1    1    1    1    1    1    1    1    1    1    1    1

External resources