Setler v2
Setler v2 is an esoteric programming language created by User:TheSpiderNinjas in 2025. It is a minimalist, jump-based language built around line-bound variables and a unique cycling mechanism for execution. Its design emphasizes explicit control flow (via `jmp` and `jiz`) combined with implicit iteration using cycle markers.
Overview
Each line in a Setler v2 program corresponds to a variable. Lines are assigned in alphabetical order: `a`, `b`, … `z`, then `aa`, `ab`, and so forth. Each variable can hold a value, with `0` as the default. Programs are executed sequentially, though control flow is typically managed with jumps and conditional jumps.
The primary commands are:
- `in`: Reads input and stores it in a variable.
- `out`: Outputs a literal or a variable’s value.
- `jmp`: Jumps unconditionally to a target line.
- `jiz`: Jumps conditionally if a value is `0` or `false`.
- `end`: Terminates execution.
Arithmetic and indexing operations are supported directly within expressions, and lines can store numbers, strings, or booleans.
Syntax
Each line contains a value or command. Assignments can either target the current line or specify another variable:
- `5` → stores 5 in the current line.
- `b: 7` → stores 7 in variable `b`.
- `out "Hello"` → outputs text.
- `jiz a 5` → jumps to line 5 if `a` is zero.
Special symbols:
- `$` → current line number.
- `#` → current line’s value.
- `;` → comments.
Cycling
Cycling is a defining feature of Setler v2. Multiple commands can be placed on the same line, separated by `|`. Execution cycles through them each time the line is revisited.
Example:
`# + 1 | # - 1` → alternates between incrementing and decrementing the current line.
A loop marker `[` can redefine the cycle’s loop-back point. Instead of returning to the start, execution returns to the command immediately after the `[` marker. By default, the loop point is at the beginning of the line.
Example:
`5 [ b - 1 | # - 1` → sets the line to 5 once, then repeatedly decrements `b` and the current line.
Only one `[` is allowed per line.
Execution
Execution starts at the first line and continues until either an `end` command is reached or the program loops indefinitely. Control flow is usually constructed using `jmp`, `jiz`, and cycling.
Examples
1. Truth Machine
in "0 or 1" out a jiz a e jmp b end
2. Increment/Decrement Cycle
# + 1 | # - 1
Computational Class
Setler v2 has not been formally proven Turing-complete, but its combination of line-bound storage, conditional jumps, and cycling strongly suggests it can simulate general computation.