| • Science | • People | • Locations | • Timeline |
| Contents | ||
Usability is rarely a high priority for such languages. The usual aim is to remove or replace conventional language features while still maintaining a language that is Turing-complete. Thus, by adhering to some principles while deliberately making no sense as a whole, these languages are perhaps the programming equivalent of nonsense verse.
The earliest, and still the canonical, esoteric language was INTERCAL, designed in 1972 by James Lyons and Don Woods, with the stated intention of being unlike any other programming language the authors were familiar with. Utilizing a counterintuitive set of operations and a character set full of awkward constructions, Intercal is a classic example of what are now known as Write-only Imperative, or sometimes Despotic programming languages.
The next notable event in the field was more than twenty years later, when Urban Müller created the now famous Brainfuck, which with only eight recognized characters is considered the canonical example of a Turing tarpit. Along with Befunge, Brainfuck is now one of the most well-supported esoteric programming languages, and it is no surprise that both are highly valued as they were both the first of their respective kinds and still the most elegant.
A programming language with arbitrarily few commands. These include Brainfuck (8 commands, all with 0 operands), OISC (1 command, 3 operands), and ThueThue (pronounced "TOO-ay") is an esoteric programming language invented by John Colagioia in early 2000. It is a metalanguage that can be used to define or recognize Type-0 languages from Chomsky hierarchy. Because it is able to define languages of such c (1 command, 2 operands).
The paradigm of a language can fall into a number of categories, and these categories are used to get a general understanding of the way that a specific language operates. These include imperative/despotic languages such as Brainfuck, in which instructions describe how to change data; functional languages such as Unlambda, in which data and code are more or less interchangeable and execution is the repeated application of functions to the results of other functions; and Rewriting languages such as ThueThue (pronounced "TOO-ay") is an esoteric programming language invented by John Colagioia in early 2000. It is a metalanguage that can be used to define or recognize Type-0 languages from Chomsky hierarchy. Because it is able to define languages of such c, in which transformation functions are applied to an initial state.
A deterministic language is one in which it can always be predicted based on the state of a program what the next state will be. Most languages are deterministic, as nondeterministic languages such as Java2KJava2K is a probabilistic esoteric programming language. Despite its name, it has practically nothing to do with the actual Java programming language. In Java2K, all functions have only a certain probability to do whatever the programmer intended them to often give unreliable results, and getting even trivial programs to have a reliable output is often a monumental task.
A despotic language is a term coined for a Turing tarpit with a stateful encoding, meaning a language in which commands are used to select from a finite range of operations and apply these operations to the current state of the program. Examples include ReMorse and Whirl, and some have suggested that even INTERCAL is a despotic language. See also Turning tarpit
A system of encoding programs such that each substring of the encoding is an instruction to locate the next instruction in a list. An example based on ReMorse would be:
With the list of operations either standard (as in ReMorse) or dynamic (as in ReMorse4ever )
A highly minimalist despotic language in which the only way to select an operation is by moving along a list of stateful encodings. This was coined as the result of a Freudian slip while discussing the despotic language Whirl.