> For the complete documentation index, see [llms.txt](https://cajac.gitbook.io/ctf-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cajac.gitbook.io/ctf-notes/prog/other-languages/esolangs.md).

# Esolangs

An esoteric programming language (sometimes shortened to esolang) is a [programming language](https://en.wikipedia.org/wiki/Programming_language) designed to test the boundaries of computer programming language design, as a [proof of concept](https://en.wikipedia.org/wiki/Proof_of_concept), as [software art](https://en.wikipedia.org/wiki/Software_art), as a hacking interface to another language (particularly [functional programming](https://en.wikipedia.org/wiki/Functional_programming) or [procedural programming](https://en.wikipedia.org/wiki/Procedural_programming) languages), or as a [joke](https://en.wikipedia.org/wiki/Joke). The use of the word [*esoteric*](https://en.wiktionary.org/wiki/esoteric) distinguishes them from languages that working developers use to write software. The creators of most esolangs do not intend them to be used for mainstream programming, although some esoteric features, such as [visuospatial](https://en.wikipedia.org/wiki/Spatial%E2%80%93temporal_reasoning) [syntax](https://en.wikipedia.org/wiki/Syntax_\(programming_languages\)), have inspired practical applications in the arts. Such languages are often popular among [hackers](https://en.wikipedia.org/wiki/Hacker_culture) and hobbyists.

## Resources

Esoteric programming language - Wikipedia: <https://en.wikipedia.org/wiki/Esoteric_programming_language>

Hello world program in esoteric languages: <https://esolangs.org/wiki/Hello_world_program_in_esoteric_languages>

Language list - Esolang Wiki: <https://esolangs.org/wiki/Language_list>
