A Question of Protocol
A Question of Protocol is a esolang created by User:Yayimhere where its all just substacks, n' more substacks, yea stacks are very usefull when nested for some reason
syntax
these are the commands:
$x: pop top of stack. if stack underflow goto line x.#: push substack to stack.}: move the top of the stack to the bottom of the stack and{rotates the other way.=: push a sub-substack to the top substack of the stack.(x):=but with nesting x.!x: pop the top of the top substack. if empty goto line x.(x[y]):!ybut with nesting x.*: run top of stack as a macro also popping it.h: halt.%: duplicate top of stack.^: print top of stack as an ascii char(see ints) also popping it.?: print but user INPUT.
all nesting values start at the outermost stack(just the stack) has a value of 0
macros
(here i will be using python's list format where the end of the list is the front of the stack)
this is the structure(in a substack):
[[[cmd1][[arg1][arg2]...]][[cmd2][[arg1][arg2]...]]]
where each cmd i run in order.
here numbers are represented with how many stacks there are in a substack. so for 5 it would be [][][][][]. here are the commands:
$x: cmd(nesting number): 2, arg1: x#: cmd: 1}: cmd: 3}: cmd: 5=: cmd: 7(x): cmd: 4, arg1: x(x[y]): cmd: 6, arg1: x, arg2: y!x: cmd: 8, arg1: x*: cmd: 9h: cmd: 11%: cmd: 13
ints
ints can be represented like this:
- lets say we have int n
- as a substack with n many lists in it
- now we have a integer
example
$0
or using macros:
#=(3)(3)(3)(3)(3)(3)(3)(3)(3)=(3)(3)(3)(3)(3)(3)(3)%*
which creates macro:
%*
Computational class
A Question of Protocol is trivially Turing complete via translation from Noddity:
s -> } i -> = d*n -> !n1 n -> space g*n -> #!n! with the rule that line n must start with $0 h -> h
Note that x*n notates x repeated n times, and n1 is n minus one.