Also?
Also? is an esolang created shortly after the creation of DyRM. It is quite the simple language, similarly to DyRM. It is also in part inspired by Minsky Machine. It is made up only one command, making it an OISC. It was created with the goal of finding stack transitions, which is similar in concept to UnCompetition.
Memory
Memory is stored on a stack. The stack has the alphabet of {*, ı, >}. The stack starts with only a ı
Semantics
Also? is technically a sort of metalanguage, that constructs a program that has to be ran by another language called STACKUNWISE, which will be described soon. Below is the syntax of the main command:
[x] y z
This command does the following:
- Interpret
xas a state transition expression written asformer stack > current stack, with the leftmost symbol as the bottom one. Multiple transitions can be added to the statement using an&between each one. - Find the shortest STACKUNWISE program that takes the former stack and transforms it to the current stack.
- Run that STACKUNWISE program on the current stack of the Also? program, and GOTO command(not line)
y. - If the above was unsuccessful however, goto line
z
STACKUNWISE
STACKUNWISE has the following commands, which affect a stack that also only uses the alphabet {*, ı, >}:
[][:]will loop the insides of the first bracketsntimes, wherenis the amount of times:repeats.{}will push each symbol within the brackets as an individual symbol, with the leftmost one being the one pushed first.;;will do the code behind the first colon if the symbol behind the second colon is equal to the top of the stack..will copy the top of the stack.*will pop the top of the stack.'will reverse the stack
Also?'s computational class
Also? is Turing complete as BCT with a data string of 1 can be interpreted into Also? with the below table:
11: [ı > ıı & * > *] next command next command 10 [ı > ı* & * > *] next command next command 0: [ı > ] next command next command
and the program must end in:
[ı > ı & * > * & > > >] 0 0
Note that in this translation, 1 is translated into ı, and 0 into *