An esoteric programming language designed to channel one of the most honest sounds a programmer can make:
"بعععععععع"
If you’ve ever been deep in a compiler bug at 3AM, you probably know the sound.
SHEEPSHEEP is a small esoteric programming language inspired mostly by Brainfuck.
Instead of cryptic symbols like + - < > [ ], this language expresses instructions using variations of the Persian sheep sound:
بععع
Yes, really.
The goal is not productivity.
The goal is fun, absurdity, and maybe a little mental therapy for system programmers.
Under the hood, the instruction model is similar to Brainfuck:
- a tape of memory cells
- a data pointer
- simple operations for incrementing, moving, loops, input/output
But instead of punctuation soup, we speak fluent sheep.
The origin story is simple.
While working on my compiler project Cyrus language, the mental pressure started climbing… and climbing… and climbing.
Eventually my brain reached a very advanced debugging phase known as:
"making weird noises at the computer."
The dominant sound turned out to be:
بععععععععع
At that moment the idea appeared:
What if this was a programming language?
And thus SHEEPSHEEP was born.
The first prototype was written in Go, but once my own language became stable enough, I decided it deserved a rewrite using Cyrus language**.
Because if you're going to make a ridiculous language, you might as well go all the way.
SHEEPSHEEP currently follows a Brainfuck‑like execution model:
- A fixed memory tape
- A pointer moving left and right
- Increment/decrement operations
- Looping constructs
- Basic I/O
Each instruction is represented by a specific pattern of "بع" sounds.
It’s intentionally minimal and intentionally ridiculous.
More capabilities may be added in the future if the sheep demand it.
A tiny SHEEPSHEEP program might look like this:
بع بع بع بع بع بع بع بع بع بع
بع بع بع بع بع بع بع بع بع بع
بع بع بع بع بع بع بع بع بع بع
بعع
Which roughly translates to something like:
- increment a cell a bunch of times
- print the result
The interpreter is written using Cyrus language.
It was built using the Cyrus compiler at commit:
5190d1a91cbc2f6b775002a235221cf8f039ccfa
To run a SHEEPSHEEP program:
cyrus run --profile=release -- ./examples/brand.sheepIf you are debugging your program or want to see debug output from the interpreter:
cyrus run --profile=debug -- ./examples/brand.sheepThe debug profile can be useful when you want to inspect how instructions are executed internally.
I'd genuinely love to hear your ideas.
If you have suggestions, improvements, cursed ideas, or strange sheep‑related inspiration:
open an issue.
Bonus points if the issue contains at least one enthusiastic:
بععععععععععععع
We will probably become friends immediately.
Programming languages don't always have to be serious.
Sometimes they exist because:
- compilers are hard
- debugging is painful
- and occasionally the correct response is simply
بعععععععععععععع
Welcome to SHEEPSHEEP.