User:B jonas/List
Jump to navigation
Jump to search
This is a list of some esoteric languages and other pages on this wiki, curated personally by me User:b_jonas, with notes on them for myself. The list is in some semblance of order with similar or related languages sometimes close to each other. I should grow this in the future.
- INTERCAL popularized the concept of esoteric languages, has several modern extensions including CLC-INTERCAL.
- Befunge the original Fungeoid, i.e. program is two-dimensional grid of instructions on which instruction pointer can move in any direction, by Chris Pressey in 1993 but several moder extensions, fungot is written in it.
- Nopfunge fungeoid, but the only instructions change the direction of control flow, the only state are the instruction pointer and direction).
- Conedy: fungeoid where the instructions are at integer coordinates but the instruction pointer can be any rational and it's the only state of the program, by ais523.
- RASEL Befunge-like using a stack of big rationals, you can reach deep into the stack, no self-modification.
- efghij source code is a real-world stack of common household objects, would be interesting to maintain servers if you programmed in this and had to store production programs in a special environment so they don't accidentally collapse or corrupt.
- Poololoop source code is running path measured with a GPS, encodes lambda calculus program.
- Piet source code is a paletted bitmap image, stack-based.
- Chef program looks like cooking recipes
- Shakespeare program looks like Shakespeare verses
- Homespring themed to describe salmon swimming up river.
- Юᓂ곧⎔ unimplemented language with unusual for its time syntax, by David Madore in 2004.
- WysiScript source code is formatted text, only the formats matter, the value of characters themselves don't.
- Perligata source code is mangled latin.
- Acme::Bleach source code consists of only space, tab, newline characters.
- Whitespace source code consists of only space, tab, newline characters.
- Thue pure string replacement loop.
- 1.1 also pure string replacement loop but without the syntax.
- /// self-modifying string-replacement loop.
- Fuun DNA specialized self-modifying string replacement language that has a limited ability to copy parts of the input to make it easier to use, from IOCCC 2007.
- SIMPLE text preprocessor with complicated quoting rules by David Madore in 1998.
- brainfuck famous simple language with way too many imitations, invented in 1993 but later found to have been independently invented in 1964 as P''. See also Brainfuck constants.
- Ook! the earliest trivial brainfuck substitution.
- Treehugger brainfuck with the tape being an infinite binary tree.
- V (FMota) a more restricted brainfuck-like language on an infinite binary tree.
- Brainfuck^ brainfuck with indirect addressing.
- BF Joust two-player non-interactive game based on brainfuck.
- Lambda calculus the original functional programming language, invented before computers.
- Binary lambda calculus an encoding of lambda calculus connected to some IO, interpreted in an IOCCC 2012 entry.
- Real Fast Nora's Hair Salon 3: Shear Disaster Download also an encoding of lambda calculus, name invented by spam on the esowiki.
- Sectorlisp tiny implementation for a lisp-like language.
- Combinatory logic aka Bird sociology proof that lambda calculus can be programmed without lambda abstraction, you can build any program from application and a few primitive lambda calculus expressions.
- Pointfree programming general concept of the above.
- Unlambda combinatory logic with some powerful extra features, by David Madore in 1999, its description page was what originally introduced me to combinatory logic and Church-encodings of algebraic types way back.
- Wikiplia functional language by Tom Murphy VII.
- BoVeX functional language for typesetting his articles by tom7.
- Underload simple stack-based functional language, has postscript-like parenthisized functions that are a list of instructions to execute, and a combinators to build arbitrary functions like that (though it's still Turing-complete without those), with a detailed wiki article, by ais523 in 2006.
- 7 similar to underload but it doesn't have parenthisized functions.
- Wikipedia:FP (programming language) combinatory logic but based on functions with multiple arguments, whereas combinatory logic and lambda calculus are single-argument functions.
- Amicus, Amicus Severus another abstractionless language based on multi-argument functions.
- Hyperamicus uncomputable extension of Amicus.
- Amycus I created this uglier language by mistake when misreading a punctuation in the description of Amicus.
- Ⅎ multi-argument functional language with abstractions.
- FP trivia might be in between an ordinary functional language with named variables and an FP/(0)-like combinator language, as in it has no lambda abstraction, just combinators combined, but function arguments are named instead of numbered, unclear because lack of docs.
- General Compute Coprocessor aka GCC functional language, controls ghosts in a Pacman arcade game, competitors write programs for ICFP contest 2014.
- GML functional programming language, stack-based plus named true lexical local variables, no mutable state, for defining ray-tracing objects, lights and camera for ICFP contest 2000.
- ICFP functional programming language for ICFP contest 2024.
- Lambda: the Gathering interactive two-player programming game for ICFP contest 2011.
- (0) family of toy uncomputable languages by David Madore for teaching theory.
- Fractran disguised counter machine with any number of counters and limited control flow.
- StackFlow: multiple stacks of symbols with finite state control, but restricted control flow: popping from a stack forgets the previous instruction pointer and jumps to a state that depends only on which stack was popped and the symbol, by ais523 in 2014.
- The Waterfall Model multiple counters but limited control flow, by ais523.
- Flooding Waterfall Model variant of The Waterfall Model, used to prove Magic: the Gathering Turing-complete with players having no meaningful decisions.
- RAM0 simple model of RAM machines, Turing-complete.
- I/D machine Turing-semi-tarpit operating on an infinite RAM of natural numbers.
- Three Star Programmer one-instruction tarpit that is likely Turing-complete, operating on an infinite array of natural numbers.
- Last ReSort zero-instruction tarpit, derivative of Three Star Programmer.
- Spiral Rise another language used to prove languages Turing-complete.
- My Unreliable Past: multi-counter machine but with a strange starting condition that makes its computational class hard to describe.
- Magic-1 16-bit CPU with memory protection, implemented in custom hardware in 2006, with significant amount of software stack including pre-emptive multi-tasking OS and a semi-serious C compiler, accessible on internet in a way that you can run custom programs on it.
- BMOW 1 6502-like 8-bit CPU with 8-bit arithmetic but 24-bit address space, implemented in custom built hardware in 2009, full computer with peripherials including video card in custom hardware.
- Viktor's amazing 4-bit processor toy CPU addressing 256 nibbles, implemented in custom hardware.
- Apollo Guidance Computer 15-bit computer used in space on the Apollo mission spacecraft.
- SKOAL not a language but a strange extension card for the HP 9825T desktop calculator for extending its memory.
- GHost CPU aka GHC small 8-bit microcontroller, controls NPC Pacmen in a Pacman arcade game, competitors write programs for ICFP contest 2014.
- Orbit virtual machine for simple floating-point numeric computations in guaranteed bounded time, judges wrote program that simulates orbital mechanics of satellites for ICFP contest 2009.
- \BV for simple numerical calculations even even smaller bounded time, competitors must writer programs in ICFP conetst 2013.
- Y86 aka x86, 16-bit toy processor used in a book to teach x86_16 and DOS programming, implemented in software.
- UM-32 simple 32-bit CPU, judges wrote program that contains puzzles for ICFP contest 2006.
- Intcode organizer wrote programs for Advent of Code 2019 tasks.
- MIX non-esoteric by Donald Knuth for giving example programs in his book the TAOCP.
- MMIX modern replacement of MIX, by Donald Knuth for giving example programs in new editions of the TAOCP, may be esoteric.
- PL/MIX high level programming language by Donald Knuth, stuck in an unreachable alternate universe.
- Gb_gates RISC small 16-bit microprocessor that can read ROM but not write it, by Donald Knuth.
- BANCStar a low-level language that was only intended as a compilation target, but as the source language wasn't pwoerful enough, people started to program directly in it, and didn't write a proper assembler/compiler.
- Kvikkalkul usenet hoax about a hard to use secret language used by the military.
- Legasm non-esoteric low-level with flat 32-bit memory for a game engine, abandonned.
- Fuun RNA language whose output is full color bitmap graphics, for ICFP contest 2007, program is usually output by Fuun DNA.
- SORTA interprets a language, no idea what it can do, but it's decidedly esoteric, by D J Bernstein for IOCCC 1991.
- Obfuscated Tiny C small subset of C to x86_32 for compiler that can compile itself, can link libc functions, by Fabrice Bellard for IOCCC 2001.
- W (Viktor T. Toth) small low-level language with non-cross compiler for x86_16 DOS calculators.
- ABC (compiler) compiler to x86_16 (but using 32-bit addressing modes) emitting only ASCII printable bytes, such that only instructions made of only ASCII printable bytes will be executed, by tom7.
- Mov Turing-complete subset of x86 that executes only MOV instructions, nothing else, and no self-modification.
- JSFuck universal subset of javascript where source code can use only six different characters.
- Blindfolded_Arithmetic add subtract multiply and integer divide on a few bigint registers, no flow control just looping the whole program, documented by ais523 in 2018, but a similar language with fixints was used by Sean Barrett for IOCCC 1992.
- Analytical Engine Programming Cards based on Babbage's plans for the Analytical engine computer, computes with integer 50 digits long, IO statements are specified to be executed by the operators rather than the machine.
- Forte you assign to an integer, permanently changing its value, by ais523.
- Eodermdrome rewrites unlabeled undirected graphs, by ais523.
- Incident unique hard to program syntax and semantics, by ais523.
- The Subtyping Machine Turing-complete language simulating the subclassing relationship in Java generics.
- But Is It Art? jigsaw puzzle solving nondeterministic, by ais523.
- Nellephant NL complexity class, I am planning to avenge its arithmetic instructions attract and repel.
- Countercall probably not Turing-complete but this is hard to prove, by ais523.
- Xigxag also probably not Turing-complete but this is hard to prove, by Christ Pressey.
- Burlesque golfing language, some people use it for non-golfing toy tasks.
- Jelly golf language with APL-like features.
- Brachylog golf language with prolog semantics.
- goruby a variant of ruby that makes it slightly more like a golf language.
- Husk golf language.
- Integ toy language with nested expressions evaluating to bigints plus a writable flat memory of bigints, was once ran by an IRC bot.
- Egel toy language.
- Farnsworth was originally a calculator language for quick computations through an IRC bot, but then inevitably grew.
- Comun toy language with four separate memory spaces containing different sizes of integers, plus registers containing pointers into these, plus a preprocessor that runs a Comun program at compile time and embeds its output to the source code.
- Lawrence J. Krakauer's decimal computer toy language for introducing children into programming back in 1965.
- Mouse sounds like a toy language, except it's from 1969, has single-letter names for variables and functions kind of like dc.
- Orca another case where I've no idea what the language does but it's decidedly esoteric and with lots of work put into it.
- McCulloch's second machine, McCulloch's third machine, Sultan's daughter simple languages defined by Raymond Smullyan that have limited computational power but teach how to write a quine.
- 2C representation for 1D cellular automaton, also defining some restricted variants.
- Von Neumann's 29-state cellular automaton early 2D cellular automaton created specifically to be Turing-complete programmable.
- Game of Life famous cellular automaton.
- HQ9+ and HQ9++ joke languages that can execute only a very few limited tasks that don't combine well, from 2001 and 2003.