Tueue
Jump to navigation
Jump to search
Tueue is a Queue-based esolang designed by User:ChuckEsoteric08. It consists of two queues, as well as one accumulator.
Specification
As said before, Tueue consists of Two queues and one accumulator.
1QU
will return bottom of first queue.
2QU
will return bottom of second queue.
ACC
will return Accumulator.
x
and y
are arguments.
ENQ x |
Enqueue x to current queue.
|
DEQ |
Dequeue element from current queue |
SWP |
Swap current queue |
INC x |
Increment accumulator by x
|
DEC x |
Decrement accumulator by x
|
MUL x |
Multiply accumulator by x
|
DIV x |
Divide accumulator by x
|
LAB x |
Declare label x
|
JMP x |
Goto label x
|
IQJ x y |
If bottom of current queue is x goto label y
|
IAJ x y |
If accumulator is x goto label y
|
MOV x y |
copy x to y
|
OUT x |
Output x as an integer
|
ASC x |
Output x as an ASCII character
|
ADD |
Dequeue bottom two elements from queue, and enqueue result of addition of them |
SUB |
Dequeue bottom two elements, a and b and push result of b-a
|
IQE x |
If current queue is empty goto x
|
COM x |
Comment |
Examples
Hello, World!
ASC 72 ASC 101 ASC 108 ASC 108 ASC 111 ASC 44 ASC 32 ASC 87 ASC 111 ASC 114 ASC 108 ASC 100 ASC 33
Bitwise Cyclic Tag Interpreter
Because There is no input, you should initialise program and data.
Initialising Program
For 0:
ENQ 0
For 1:
ENQ 1
Initialising Data
After initialising program add this code:
ENQ @ SWP
And then: For 0:
ENQ 0
For 1:
ENQ 1
After initialising data add this command:
SWP
Interpreter itself
LAB SRT MOV 1QU ACC DEQ ENQ ACC IAJ 0 EX0 IAJ 1 EX1 IAJ @ IEM JMP SRT LAB EX0 SWP DEQ SWP JMP SRT LAB EX1 SWP IQJ 0 SJM SWP IQJ @ IF@ SWP ENQ 1QU SWP JMP SRT LAB SJM SWP JMP SRT LAB IF@ DEQ ENQ @ SWP ENQ 1QU SWP JMP LAB IEM DEQ ENQ @ IQE END JMP SRT LAB END