Unbroken is an esoteric programming language that has certain restrictions:
Programs cannot contain line breaks (hence the name of the language). Instead, statements are separated by the vertical bar character (|). Also, obviously indentation is not allowed.
Blocks of code must start and end with two vertical bars (||). This includes the main program.
All statements must start with a keyword indicating the type of statement. Valid keywords include if, else, while, for, set, define, call, return, local, print, comment. Once a loop is started, the program cannot exit it until the condition for the end of the loop is reached.
Programs must not have bugs.
All programs must be well-commented.
Programs must be written in an imperative style. Every function must have some side effect.
Programs cannot have any global variables other than consonants.
Variable and function names starting with _ are reserved by the system, and may not be used by programs.
Variables whose names don't contain a vowel cannot be changed.
Numbers and strings other than 0, 1, nfnt (infinity), and "" cannot be used directly in expressions.
All variables must be passed by reference.
Only arrays and strings, not numbers, are references.
All programs written in Unbroken must be approved and sold in the app store before they can run. For that matter, they must be approved before they can even be written.