etisoppO (read: "Opposite" spelled backwards) is an esoteric programming language built in a single night as a friendly competition against a classmate. The language is a structural inversion of C: every operator is replaced with its semantic opposite, control flow is inverted, and the general principle of the language is that what is "true" in C is "false" in etisoppO, and vice versa. The name itself is spelled backwards to fit this theme.
Esoteric programming languages (esolangs) are a long tradition in computer science, designed to poke art or fun at the nature of language design. Famous examples include Brainfuck (minimal Turing-complete tape machine), Malbolge (intentionally impossible to program in), and Whitespace (programs written entirely in whitespace characters).
The competition: a classmate and I each had 8 hours to design and implement a working programming language (read: transpiler) from scratch.
The inversion theme was chosen because it creates an interesting cognitive puzzle: if you know C, you know etisoppO, except every intuition you have is wrong. + subtracts. if executes its body when the condition is false. while exits when its condition becomes true (i.e., it loops while false). Assignments bind in the opposite direction.
Building a working language in one night requires making pragmatic decisions about scope. etisoppO's implementation is a transpiler: programs written in etisoppO are translated to semantically equivalent C code and then compiled with a standard C compiler. This means the runtime is just C's runtime, and the implementation effort is concentrated entirely on the parsing and transformation pass. It also does not fully invert every structure due to the inherent complexity of overloaded characters being used.
The exercise was instructive for understanding how language semantics are constructed. When you have to "flip" every semantic choice, you become very aware of which choices are arbitrary conventions (and could be flipped cleanly) versus which are load-bearing constraints of the language itself.
An in-browser etisoppO interpreter where you can write and run programs is planned. Check back later.