From Esolang
Jump to navigation Jump to search
Paradigm(s) imperative
Designed by thisIsTheFoxe
Appeared in 2019
Memory system tape-based
Dimensions one-dimensional
Computational class Turing complete
Major implementations Original PlaygroundBook
Influenced by l33t
File extension(s) .dubdubm

DubDubMachine is a esoteric programming language created in 2019 by ThisIsTheFoxe for a WWDC Scholarship application, hence it's name. It's goal is to show how much fun end exitement esolangs can bring - especially to newcomers.

Language overview

DubDubMachine operates on an array of (normally 8) memory cells, also referred to as the tape. Each cell is initially set to zero. There is a pointer, initially pointing to the first memory cell. There are 20 (originally 19) Emoji which are interpreted as commands. Every other character is ignored and treated like a comment.


Command Description
0️⃣-πŸ”Ÿ Those 11 Emoji are used to represent numbers in DubDubMachine.
πŸŽ™ IN: (not part of the original implementation) Reads a character from an input and writes is ASCII code into the current cell
πŸŽ‰ OUT: Prints out the value of the current cell as ASCII character
πŸ‘(followed by a number x) INC: Increments the current memory cell by x
πŸ‘Ž(followed by a number x) DEC: Decrements the current memory cell by x
πŸ‘‰(followed by a number x) FWD: Moves the pointer forwards by x
πŸ‘ˆ(followed by a number x) BCK: Moves the pointer backwards by x
🀟 IF: Jumps past the matching 🀘 if the current cell is 0
🀘 EIF: Jumps back to the matching 🀟 if the cell under the pointer is NONzero
🀯 END: Terminates the program immediately


According to the author the commands where influenced by the language l33t. However, many esoteric programming languages use similar commands. The related Emoji also where chosen to represent their actions, which is also common in esolangs (e.g. brainfuck: + = πŸ‘) The Emoji for IF / EIF and END where influenced by the theme of WWDC19.


Cat program



Based on the brainfuck example.



Probably the first program to ever been written in this language by the author. It prints the string "WWDC".

πŸ‘πŸ”ŸπŸ‘7️⃣   init cell 1 with 17
🀟         loop start
πŸ‘Ž1️⃣       decrement x
πŸ‘5️⃣       add 5 to cell 2
πŸ‘4️⃣       add 4 to cell 3
πŸ‘4️⃣       add 4 to cell 4
πŸ‘ˆ3️⃣       back to cell 1
πŸ‘2️⃣       add 5 to cell 2
πŸŽ‰πŸŽ‰       print cell 2 two time
πŸ‘‰1οΈβƒ£πŸŽ‰     print cell 3
πŸ‘Ž1οΈβƒ£πŸŽ‰     subtract 1 form cell 4 and print it
🀯          The End ^-^

Computational class

DubDubMachine would be Turing-complete with an infinite amount of memory. However, since it's defined by it's small memory of eight 8bit cells it is not entirely. Interestingly, DubDubMachine does not need the IN command to be Turing-complete. One could define it's input to be the first cell of the tape and would have to scroll back each time, but it would work!