EmojiStack

From Esolang
Jump to navigation Jump to search

EmojiStack is a stack-based esoteric programming language generated by Grok where all commands are represented by specific emoji characters. It is inspired by stack-based languages like Forth but restricted to emoji for commands and uses Unicode emojis for pushing values. Programs are visually expressive (or chaotic) due to the heavy use of emojis.

The language operates on a single stack of integers (unbounded). Input/output is via Unicode code points for characters.

Commands

Emoji Command Description
+ Pop two values a (top), b; push b + a
- Pop two values a, b; push b - a
✖️ * Pop two values a, b; push b * a
/ Pop two values a, b; push b / a (integer division)
📥 Input Push the next input character's code point (or -1 on EOF)
📤 Output Pop top value and output as character
🔢 Push number Followed by a digit emoji (0️⃣-9️⃣) sequence ended by ⏹️; pushes the decimal number
😄 Duplicate Duplicate top of stack
🔄 Swap Swap top two values
🗑️ Pop Discard top value
If zero Pop top; if zero, skip to matching ❗ (like a conditional branch)
End if Matching end for ❓

Loops are not directly supported to keep it minimal; conditionals can be nested.

The language is likely Turing-complete with sufficient creativity (using stack for tape simulation), but extremely impractical.

Example: Hello, World!

A program to output "Hello, World!":

🔢 72 ⏹️ 📤 🔢 101 ⏹️ 📤 🔢 108 ⏹️ 📤 🔢 108 ⏹️ 📤 🔢 111 ⏹️ 📤 🔢 44 ⏹️ 📤 🔢 32 ⏹️ 📤 🔢 87 ⏹️ 📤 🔢 111 ⏹️ 📤 🔢 114 ⏹️ 📤 🔢 108 ⏹️ 📤 🔢 100 ⏹️ 📤 🔢 33 ⏹️ 📤

(This pushes each character's ASCII code and outputs it.)

Computational class

Likely Turing-complete via stack manipulation simulating a Turing machine tape, though unproven.