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.
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: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
Usability for writing programs
Quantumness
- Not quantum
- Category:Quantum computing
Concurrency
- Not concurrent
- Category:Concurrent programming
Reversibility
- Not reversible
- Category:Reversible computing
Computational class
- Category:Turing complete
- Category:Total
- Category:Push-down automata
- Category:Linear bounded automata
- Category:Finite state automata
- Category:Uncomputable
- Category:Unknown computational class
Input/output capabilities
- Category:No IO
- Category:Output only
- Category:Graphical Output (was this discussed?)
- Category:Audio Output (was this discussed?)
- Non-interactive IO (should this be a category?)
- Interactive IO (should this be a category?)
Derivatives
- Non-derivatives or not in this list
- Category:Brainfuck derivatives
- Category:Nope. derivatives
- Category:Aubergine derivatives (was this discussed?)
Dimensions
- Category:Zero-dimensional
- One-dimensional
- Category:Multi-dimensional languages
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:People for esoteric programmers and other notables
- Category:Concepts for infinity, computational class, and so on
- Category:Proofs for pages that prove something, or attempt to
- Category:Program forms for classes of program that are commonly implemented in esoteric programming languages
- Category:Data Types and Structures for data types and structures
- Category:Examples for articles containing primarily code examples
- Category:Implementations for implementations of esoteric programming languages and esoteric implementations of regular languages
- Category:Programming games for games based on or related to programming, or articles related to them
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