We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.
Esolang:Categorization
When adding a new language, there's a need for it to be classified in some way to make it easier to find languages meeting a certain criterium.
Below is a list of characteristics to be considered when categorizing a language. (For information on how to apply categories, see the relevant page of MediaWiki's documentation, but the summary is that you write [[Category:name of category]] at the bottom of the page.)
(If a category is listed unlinked below, then the property listed is not deemed worth categorizing.)
Note that it is a point of site policy that new categories should be discussed first in Esolang talk:Categorization before being created.
Naming
Similar to regular pages, only the first word in the category name should be capitalized. Categories for languages should use the word "languages" in plural form.
Languages
- Category:Languages (this should be present in all languages, as opposed to e.g. Category:Computational models)
Paradigm
- Imperative paradigm
- Category:Functional paradigm
- Category:String-rewriting paradigm
- Category:Object-oriented paradigm
- Class-based paradigm
- Category:Prototype-based paradigm
- Category:Declarative paradigm
- Category:Cellular automata
- Category:Particle automata
- Category:Turning tarpits [sic]
Year of creation
These categories tell when the language was created or first published. See Category:Years.
Determinism
- Deterministic
- Category:Nondeterministic
Memory
- Based on variables, dynamic memory, etc.
- Category:Cell-based
- Category:Stack-based
- Category:Queue-based
- Category:Deque-based
- Category:Tree-based
- Category:Matrix-based
- Category:Graph-based
Usability for writing programs
Quantumness
- Not quantum
- Category:Quantum computing
Concurrency
- Not concurrent
- Category:Concurrent programming
Reversibility
- Not reversible
- Category:Reversible computing
Computational class
The categories corresponding to the Chomsky hierarchy have been used as encompassing, except for the Turing-complete category. This means that the category is the minimum model of computation which can encompass all programs of the language. This is reversed for Turing complete, so a Turing complete language must encompass all Turing machines.
- Category:Turing complete - languages which can model any Turing machine
- Category:Linear bounded automata - languages which can be modeled by linear bounded automata
- Category:Push-down automata - languages which can be modeled by pushdown automata
- Category:Finite state automata - languages which can be modeled by finite state machines
Other categories:
- Category:Total - languages which are total, where all programs halt
- Category:Uncomputable - languages which are uncomputable and cannot be emulated by a Turing machine
- Category:Unknown computational class
Input/output capabilities
- IO
- Category:No IO
- Category:Output only
- Category:Graphical Output (was this discussed?)
- Category:Audio Output (was this discussed?)
Derivatives
- Non-derivatives or not in this list
- Category:Brainfuck derivatives
- Category:Deadfish derivatives (was this discussed?)
Dimensions
Implemented
Source format
- Text based
- Category:Pattern-based
- Category:CJK (Chinese/Japanese/Korean characters)
- Category:Non-textual
- Category:Pseudonatural (Programs resemble text in a natural language (i.e. one spoken by humans))
Abstraction level
Self-modification
- Not self-modifying
- Category:Self-modifying
Theme
- No theme
- Category:Thematic
Structure
Dependence on code
- Code esolang
- Category:No-code esolang
Miscellaneous
- Category:Concepts for infinity, computational class, and so on
- Category:Data types and structures for data types and structures
- Category:Esoteric subset for esolangs which are subsets of other languages (both serious and esoteric)
- Category:Examples for articles containing primarily code examples
- Category:Generated by AI for pages written with the help of artificial intelligence
- Category:Implementations for implementations of esoteric programming languages and esoteric implementations of regular languages
- Category:People for esoteric programmers and other notables
- Category:Program forms for classes of program that are commonly implemented in esoteric programming languages
- Category:Programming games for games based on or related to programming, or articles related to them
- Category:Programming techniques for pages discussing how to program in esoteric languages
- Category:Proofs for pages that prove something, or attempt to
See Also
- Special:Categories -- the list of all categories actually used on this wiki, generated by the MediaWiki software
- Special:UncategorizedPages -- an automatically-generated list of pages which lack categories