283 lines
14 KiB
HTML
283 lines
14 KiB
HTML
<h1 id="awesome-esolangs-awesome">Awesome Esolangs <a
|
||
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
|
||
alt="Awesome" /></a></h1>
|
||
<p><img src="logo_piet.png" align="right"></p>
|
||
<p>Curated list of awesome esoteric programming languages, resources and
|
||
related projects.</p>
|
||
<blockquote>
|
||
<p>“An esoteric programming language, or esolang, is a computer
|
||
programming language designed to experiment with weird ideas, to be hard
|
||
to program in, or as a joke, rather than for practical use.”<br />
|
||
<strong><em>esolang.org</em></strong></p>
|
||
</blockquote>
|
||
<h2 id="contents">Contents</h2>
|
||
<ul>
|
||
<li><a href="#languages">Languages</a></li>
|
||
<li><a href="#algorithms">Algorithms</a></li>
|
||
<li><a href="#others">Others</a></li>
|
||
<li><a href="#resources">Resources</a></li>
|
||
<li><a href="#articles">Articles</a></li>
|
||
<li><a href="#community">Community</a></li>
|
||
</ul>
|
||
<h2 id="languages">Languages</h2>
|
||
<ul>
|
||
<li><a href="https://esolangs.org/wiki/fish">><></a> - A
|
||
stack-based 2d language with support for reflection.</li>
|
||
<li><a href="https://esolangs.org/wiki/1%2B">1+</a> - A surprisingly
|
||
user-friendly language with a highly-limited instruction set.</li>
|
||
<li><a href="https://github.com/oatmealine/78">78</a> - A
|
||
single-character command language focused around the numbers 7 and
|
||
8.</li>
|
||
<li><a href="https://www.quaxio.com/ajsone">ajsone</a> - Language
|
||
defined completely in JSON.</li>
|
||
<li><a href="https://github.com/wsdt/AlmostBinary">AlmostBinary</a> -
|
||
Code in binary and run on any platform.</li>
|
||
<li><a href="http://lhartikk.github.io/ArnoldC">ArnoldC</a> - Based on
|
||
the best one-liners of Arnold Schwarzenegger.</li>
|
||
<li><a href="https://esolangs.org/wiki/Befunge">Befunge</a> -
|
||
Two-dimensional language.</li>
|
||
<li><a href="https://github.com/kvbc/brackets">Brackets</a> - Language
|
||
made of brackets, a lot of brackets.</li>
|
||
<li><a href="https://esolangs.org/wiki/Brainfuck">Brainfuck</a> -
|
||
Minimalist language using only 8 single-character commands.</li>
|
||
<li><a href="https://github.com/NicksterSand/Cflat">C Flat</a> - Musical
|
||
language focused on sound rather than notation with creative freedom in
|
||
mind.</li>
|
||
<li><a href="https://github.com/mousetail/celltail">CellTail</a> - A 1d
|
||
celular automata based language, supports a complex pattern matching
|
||
syntax.</li>
|
||
<li><a href="https://github.com/somebody1234/Charcoal">Charcoal</a> -
|
||
Concise language for sketching ASCII art.</li>
|
||
<li><a href="http://www.dangermouse.net/esoteric/chef.html">Chef</a> -
|
||
Programs that look like cooking recipes.</li>
|
||
<li><a href="https://esolangs.org/wiki/Chicken">Chicken</a> - Only 1
|
||
valid symbol: ‘chicken’.</li>
|
||
<li><a href="https://github.com/angrykoala/chuckscript">ChuckScript</a>
|
||
- Unary-based language, where the code is a single number.</li>
|
||
<li><a href="https://esolangs.org/wiki/COW">COW</a> - Brainfuck variant
|
||
using twelve variations of <em>moos</em> as instructions.</li>
|
||
<li><a href="https://esolangs.org/wiki/DNA-Sharp">DNA#</a> - Language
|
||
based on the structure of the DNA.</li>
|
||
<li><a href="https://github.com/josconno/dots">Dots</a> - A
|
||
turing-complete language using “.” symbol only.</li>
|
||
<li><a href="https://github.com/DolphyWind/Electra-Lang">Electra</a> -
|
||
Code like an electrician.</li>
|
||
<li><a href="http://www.emojicode.org">Emojicode</a> - Full-blown
|
||
programming language consisting of emojis.</li>
|
||
<li><a href="https://github.com/joaomilho/Enterprise">Enterprise™</a> -
|
||
Non deterministic unnecessarily statically typed language.</li>
|
||
<li><a href="http://strlen.com/false-language">False</a> - Heavily
|
||
obfuscated language with a minimal implementation.</li>
|
||
<li><a href="https://github.com/Property404/fetlang">Fetlang</a> -
|
||
Designed such that source code looks like poorly written fetish
|
||
erotica.</li>
|
||
<li><a href="https://github.com/tomhea/flip-jump">FlipJump</a> - 1
|
||
instruction: Flip a bit, then Jump. The simplest OISC.</li>
|
||
<li><a href="https://github.com/rottytooth/Folders">Folders</a> - Code
|
||
written with folders.</li>
|
||
<li><a href="https://github.com/FreakC-Foundation/FreakC">FreakC</a> -
|
||
Full-blown programming language with NSFW contents and memes.</li>
|
||
<li><a href="https://esolangs.org/wiki/Fugue">Fugue</a> - Music as
|
||
source code.</li>
|
||
<li><a href="http://www.golfscript.com/golfscript">Golfscript</a> -
|
||
Stack oriented, aimed at solving problems in as few keystrokes as
|
||
possible.</li>
|
||
<li><a href="http://www.dangermouse.net/esoteric/haifu.html">Haifu</a> -
|
||
Designed with the core values of Eastern philosophy in mind.</li>
|
||
<li><a href="http://www.catb.org/~esr/intercal">INTERCAL</a> - Parody
|
||
language intended to be completely different from other languages.</li>
|
||
<li><a href="https://github.com/ETHproductions/japt">Japt</a> - Reduced
|
||
JavaScript for golfing.</li>
|
||
<li><a href="https://github.com/DennisMitchell/jellylanguage">Jelly</a>
|
||
- Golfing language based on J.</li>
|
||
<li><a
|
||
href="https://github.com/nguyenphuminh/Jellyscript">JellyScript</a> -
|
||
Brainfuck-based with delicious jelly.</li>
|
||
<li><a href="https://github.com/aemkei/jsfuck">JSFuck</a> - Esoteric
|
||
programming style based on the atomic parts of JavaScript.</li>
|
||
<li><a href="https://tromp.github.io/cl/lazy-k.html">Lazy K</a> -
|
||
Minimal, turing-complete pure functional language without extra
|
||
features.</li>
|
||
<li><a href="https://morr.cc/legit">legit</a> - Programs defined
|
||
entirely by the graph of the git repository instead of its
|
||
contents.</li>
|
||
<li><a href="http://lolcode.org">LolCode</a> - Language with keywords
|
||
based on the lolcat meme expressions.</li>
|
||
<li><a href="https://esolangs.org/wiki/Malbolge">Malbolge</a> - Named
|
||
after the 8th level of hell, is designed to be as difficult as possible
|
||
to program.</li>
|
||
<li><a href="https://github.com/angrykoala/mindfck">Mindfck</a> - High
|
||
level language that transpiles to Brainfuck.</li>
|
||
<li><a href="https://github.com/esseks/monicelli">Monicelli</a> -
|
||
Programming using Italian-like gibberish.</li>
|
||
<li><a href="https://github.com/DeybisMelendez/ni">Ni</a> -
|
||
Brainfuck-based with more helpful instructions.</li>
|
||
<li><a href="https://esolangs.org/wiki/Omgrofl">Omgrofl</a> - Syntax
|
||
resembling Internet slang.</li>
|
||
<li><a href="http://www.dangermouse.net/esoteric/ook.html">Ook!</a> -
|
||
Brainfuck-based language, where the commands are orangutan words.</li>
|
||
<li><a href="https://hundredrabbits.itch.io/orca">Orca</a> - Livecoding
|
||
environment to quickly create procedural audio sequencers.</li>
|
||
<li><a href="http://www.dangermouse.net/esoteric/piet.html">Piet</a> -
|
||
Language in which programs look like abstract paintings using colors as
|
||
code. Named after Piet Mondrian.</li>
|
||
<li><a href="https://github.com/Nakilon/rasel">RASEL</a> - Fungeoid with
|
||
no limits on program space, float precision, and with a bit of random
|
||
access to stack.</li>
|
||
<li><a href="http://esolangs.org/wiki/reMorse">reMorse</a> -
|
||
Morse-styled language.</li>
|
||
<li><a href="https://github.com/dylanbeattie/rockstar">Rockstar</a> -
|
||
Designed for creating computer programs that are also song lyrics.</li>
|
||
<li><a href="http://shakespearelang.sourceforge.net">Shakespeare</a> -
|
||
Language where the code appear to be Shakespearean plays.</li>
|
||
<li><a href="https://tomeraberba.ch/schoenberg">Schoenberg</a> - The
|
||
MIDI Esoteric Programming Language.</li>
|
||
<li><a href="https://spookylang.com">Spooky</a> - The scariest
|
||
programming language :jack_o_lantern: :skull:.</li>
|
||
<li><a href="https://github.com/gvx/suzy">Suzy</a> - 3D language
|
||
inspired in Befunge.</li>
|
||
<li><a href="https://esolangs.org/wiki/Technologic">Technologic</a> -
|
||
Language in which programs look like the lyrics to the Daft Punk song
|
||
Technologic.</li>
|
||
<li><a href="https://github.com/jcolag/Thue">Thue</a> -
|
||
<em>Matrioshka</em> language based on nondeterministic string rewriting
|
||
of a semi-Thue grammar.</li>
|
||
<li><a href="https://github.com/sungwoncho/tru">Tru</a> - A stack-based
|
||
language with prefix-free brackets.</li>
|
||
<li><a href="https://github.com/samshadwell/TrumpScript">TrumpScript</a>
|
||
- Make Python great again.</li>
|
||
<li><a href="https://github.com/TypeMonkey/Turtle">Turtle</a> - Uses
|
||
long-term storage for memory use.</li>
|
||
<li><a href="https://esolangs.org/wiki/Unary">Unary</a> -
|
||
Brainfuck-based language where all the commands are 0.</li>
|
||
<li><a
|
||
href="https://esolangs.org/wiki/Unary_Except_Every_Zero_Is_Replaced_with_the_Title_of_This_Programming_Language_or,_Alternately,_Is_Replaced_with_the_Smallest_Counter-Example_to_the_Goldbach_Conjecture._Compilers_and_Interpreters_Only_Have_to_Implement_the_Former_Option">Unary
|
||
Except Every Zero Is Replaced with the Title of This Programming
|
||
Language or, Alternately, Is Replaced with the Smallest Counter-Example
|
||
to the Goldbach Conjecture. Compilers and Interpreters Only Have to
|
||
Implement the Former Option</a> - Derivative of Unary in which every
|
||
zero is replaced with the title of the programming language being
|
||
discussed.</li>
|
||
<li><a
|
||
href="http://www.madore.org/~david/programs/unlambda">Unlambda</a> -
|
||
Obfuscated functional programming.</li>
|
||
<li><a href="http://velato.net">Velato</a> - Language that uses MIDI
|
||
files as source, programs are defined by the pitch and order of
|
||
notes.</li>
|
||
<li><a href="https://github.com/munificent/vigil">Vigil</a> - Only Vigil
|
||
is truly vigilant about not allowing code that fails to pass
|
||
programmatic specifications.</li>
|
||
<li><a href="https://github.com/genkami/watson">Watson</a> - Stack-based
|
||
Turing-incomplete configuration files.</li>
|
||
<li><a href="http://wenyan-lang.lingdong.works">文言 (Wenyan)</a> -
|
||
Closely follows the grammar and tone of classical Chinese
|
||
literature.</li>
|
||
<li><a
|
||
href="http://www.dangermouse.net/esoteric/whenever.html">Whenever</a> -
|
||
Language that does things whenever it wants.</li>
|
||
<li><a
|
||
href="http://web.archive.org/web/20150623025348/http://compsoc.dur.ac.uk/whitespace">Whitespace</a>
|
||
- Use only white-characters (space, tabs and newlines).</li>
|
||
<li><a href="https://github.com/WilliamRagstad/WordLang">WordLang</a> -
|
||
A language based on meaning-like grammar that produces output.</li>
|
||
<li><a href="https://esolangs.org/wiki/Z">Z</a> - Use only the letter
|
||
z.</li>
|
||
<li><a
|
||
href="https://www.dangermouse.net/esoteric/zombie.html">ZOMBIE</a> -
|
||
Inherently evil multithreaded language designed for Necromancers.</li>
|
||
</ul>
|
||
<h2 id="algorithms">Algorithms</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/philipl/pifs">πfs</a> - Pi-based storage
|
||
system, store your data by searching a matching sequence in pi.</li>
|
||
<li><a href="https://gkoberger.github.io/stacksort">Stacksort</a> -
|
||
Sorts a list by searching answers in Stack Overflow and executing code
|
||
snippets until is sorted.</li>
|
||
</ul>
|
||
<h2 id="others">Others</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/kspalaiologos/asmbf">asmbf</a> - The
|
||
only true brainfuck assembler toolkit.</li>
|
||
<li><a href="https://github.com/kkuchta/css-only-chat">CSS-only-chat</a>
|
||
- A truly monstrous async web chat using no JS whatsoever on the
|
||
frontend.</li>
|
||
<li><a
|
||
href="https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition">FizzBuzzEnterpriseEdition</a>
|
||
- Simple FizzBuzz game implemented under the most strict enterprise
|
||
standards.</li>
|
||
<li><a
|
||
href="https://github.com/kspalaiologos/malbolge-lisp">MalbolgeLisp</a> -
|
||
A Lisp interpreter in Malbolge Unshackled.</li>
|
||
<li><a href="https://github.com/kelseyhightower/nocode">NoCode</a> -
|
||
Secure and reliable applications. Write nothing; deploy nowhere.</li>
|
||
<li><a
|
||
href="http://www.dangermouse.net/esoteric/petrovich.html">Petrovich</a>
|
||
- Operating System concept based on random actions and
|
||
rewards/punishments.</li>
|
||
<li><a href="https://github.com/madrobby/vapor.js">vapor.js</a> - The
|
||
World’s Smallest & Fastest JavaScript Library.</li>
|
||
</ul>
|
||
<h2 id="resources">Resources</h2>
|
||
<ul>
|
||
<li><a href="http://www.dangermouse.net/esoteric">DM’s Esoteric
|
||
Programming Languages</a> - List of esoteric languages and algorithms
|
||
written by dangermouse.</li>
|
||
<li><a href="https://github.com/graue/esofiles">Esofiles</a> - The
|
||
Esoteric Files Archive, an archive of implementations of esoteric
|
||
programming languages and examples.</li>
|
||
<li><a href="https://esolangs.org">Esolang</a> - Wiki of esoteric
|
||
programming languages and related Resources.</li>
|
||
<li><a href="https://esoteric.codes">Esoteric Codes</a> - Articles and
|
||
documents collection.</li>
|
||
<li><a href="http://rosettacode.org/wiki/Rosetta_Code">Rosettacode</a> -
|
||
Provides examples in different languages, including esoteric
|
||
languages.</li>
|
||
<li><a
|
||
href="https://en.wikipedia.org/wiki/Esoteric_programming_language">Wikipedia/Esoteric
|
||
programming languages</a> - Wikipedia list of esoteric languages.</li>
|
||
<li><a href="https://esolangs.org/wiki/List_of_ideas">Esolang List of
|
||
ideas</a> - Compilation of ideas for esoteric languages and
|
||
related.</li>
|
||
</ul>
|
||
<h2 id="articles">Articles</h2>
|
||
<ul>
|
||
<li><a href="https://ruslanspivak.com/lsbasi-part1">Let’s Build a Basic
|
||
Interpreter (Ruslan’s Blog)</a> - Series of articles explaining the
|
||
basics of compilers and interpreters and how to build one.</li>
|
||
<li><a
|
||
href="http://www.ybrikman.com/writing/2014/04/09/six-programming-paradigms-that-will">Six
|
||
programming paradigms that will change how you think about coding</a> -
|
||
Post by Yevgeniy Brikman describing different programming paradigms that
|
||
are not commonly applied.</li>
|
||
<li><a
|
||
href="https://tomassetti.me/discovering-arcane-world-esoteric-programming-languages">The
|
||
Fun (and Madness) of Esoteric Programming Languages</a> -
|
||
Straightforward introduction to esoteric languages with examples.</li>
|
||
<li><a
|
||
href="http://www.andrew.cmu.edu/user/twildenh/PowerPointTM/Paper.pdf">On
|
||
the Turing Completeness Of MS PowerPoint</a> - Turing Machine on
|
||
PowerPoint.</li>
|
||
</ul>
|
||
<h2 id="community">Community</h2>
|
||
<ul>
|
||
<li><a href="http://golf.shinh.org">Anarchy Golf</a> - Informal <a
|
||
href="https://en.wikipedia.org/wiki/Code_golf">golfing</a> problems
|
||
server.</li>
|
||
<li><a href="https://codegolf.stackexchange.com">Code Golf Stack
|
||
Exchange</a> - Golfing problems and answers.</li>
|
||
<li><a
|
||
href="http://webchat.freenode.net/?channels=esoteric&uio=d4">Freenode
|
||
IRC Channel</a> - The #esoteric IRC channel on freenode.</li>
|
||
<li><a href="https://www.reddit.com/r/esolangs">Reddit Esolangs</a> -
|
||
Reddit community on esolangs.</li>
|
||
<li><a href="https://discord.gg/SdFJQmd4QJ">Esolangs Discord Server</a>
|
||
- A Discord community about esoteric languages.</li>
|
||
</ul>
|
||
<blockquote>
|
||
<p>Logo used with permission of <a
|
||
href="http://www.dangermouse.net/esoteric/piet/samples.html">David
|
||
Morgan-Mar</a></p>
|
||
</blockquote>
|
||
<p><a href="https://github.com/angrykoala/awesome-esolangs">esolangs.md
|
||
Github</a></p>
|