P1eq
Jump to navigation
Jump to search
P1eq (plus one and branch if equal) by User:Oleg is a Subleq derivative with an instruction
A B C
and the meaning B=A+1 and jump to C if B does not change.
Hello, world!
Using the Subleq assembly language "Hello, world!" program is straightforward
# output *p; p a a:0 (-1) # p++ p p # check if p!=E p t E t (-1) Z Z0 0 . p:H-1 Z:-1 Z0:0 t:0 . H: "Hello, World!\n" E:E-1
Arithmetic sum
The instruction is probably enough to make more complex computation. For example, the following program prints "2" (ASCII value 50) after summing x and y.
t1 t1 y y t1 t2 x t2 end Z Z0 0 end: y (-1) Z Z0 (-1) . Z:-1 Z0:0 t1:0 t2:0 x:30 y:20
Implementation
Use sqasm.cpp to compile assembly program into the P1eq code. Then sqrun.cpp with the option (-p) to run the compiled code.