Esoteric languages
👉 Overview
👀 What ?
Esoteric languages are programming languages that are not designed for practical use, but to test the boundaries of computer programming language design.
🧐 Why ?
Esoteric languages are a unique field of computer science that challenges our understanding of programming languages, providing a different perspective on how we interact with computers.
⛏️ How ?
To use an esoteric language, one needs to understand the fundamental concept of programming and the specific rules of the esoteric language in question.
⏳ When ?
The first esoteric language, INTERCAL, was created in 1972 as a parody of the trends in programming language design at the time.
⚙️ Technical Explanations
Esoteric languages often disregard the traditional language design principles and instead focus on the minimalism, humor, or the complexity. Some of the well-known esoteric languages include Brainfuck, INTERCAL, and Malbolge.
Let's use the esoteric language Brainfuck as an example. Brainfuck operates on an array of memory cells, also referred to as the tape, each initially set to zero. It includes only eight simple commands, a move left command, a move right command, an increment command, a decrement command, a print command, a read command, a loop start command, and a loop end command.
Here's an example of a Brainfuck program that prints out "Hello World!":
++++++++[>++++++<-]>+. // H
------------. // e
++++++++++++[>++++++++<-]>-. // l
++++++++++++[>++++++++<-]>-. // l
+++.. // o
----. // space
++++++++[>+++++++++++<-]>-. // W
+++++++++++[>+++++++++++<-]>. // o
---------. // r
++++++++[>+++++++++++<-]>-. // l
-----. // d
--------. // !
Each line of this program is responsible for printing a single character of the string "Hello World!". The program uses loops ([...]
) to multiply two numbers together to generate the ASCII value of each character. Once the ASCII value of a character is stored in the current memory cell, the .
command is used to output the character.
The process is repeated for each character in the string "Hello World!".