Finite-state mach... wait, WHAT!?
| Paradigm(s) | Imperative |
|---|---|
| Designed by | User:Hakerh400 |
| Appeared in | 2020 |
| Computational class | Unknown |
| Major implementations | Interpreter |
| File extension(s) | .txt |
Finite-state mach... wait, WHAT!? (or simply FSMWW) is a programming language that looks like an FSM, but it can construct and execute another program, which can use more memory.
Memory
Same memory model as in brainfuck (8-bit cells), but the tape is limited (has finite number of memory cells).
Source code
The first character of the source code must be either : or ;.
Then a decimal number follows (sequence of decimal digits). That number (we call it N) represents the memory size (number of memory cells). Data pointer is at the cell with index 0 and the last accessible cell has index N-1. If the memory pointer goes outside the memory (becomes -1 or N), then throw an error.
The rest of the source code (after the number) is a brainfuck program. Execute it as a regular brainfuck code (but with limited memory). When (if) the brainfuck program halts, do the following:
- If the first character of the source code is
;, then print the brainfuck output and terminate the whole FSMWW program - If the first character of the source code is
:, then interpret the brainfuck output as a FSMWW program
Note: in case of :, the input is not reset (what has already been read remains read). Reading after the last input character gives 0.
Examples
Cat program
;1,[.,]
Another one:
:1+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.----------.-----.+++++++++++++++++++++ ++++++++++++++++++++++++++.---------------------------------------------.--.++++++++++++++++++++++++ +++++++++++++++++++++++++.
The second example generates the first example and then executes it.
Hello, World!
;1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++ ++++.+++++++..+++.-------------------------------------------------------------------.------------.+ ++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++.+++.------.--------. -------------------------------------------------------------------.
Computational class
Unknown.