
cryborg
25733
90
5
TL;DR: In 1998 Ben Olmstead invented Malbolge, a computer programming language. It is not meant to be useful. It is really just a very difficult puzzle - kind of like a big Sudoku for programmers.
The Malbolge virtual machine (for Linux): https://github.com/zb3/malbolge-vm
Wikipedia's description
Malbolge (/mælˈboʊldʒ/) is a public domain esoteric programming language invented by Ben Olmstead in 1998, named after the eighth circle of hell in Dante's Inferno, the Malebolge. It was specifically designed to be almost impossible to use, via a counter-intuitive 'crazy operation', base-three arithmetic, and self-altering code. It builds on the difficulty of earlier challenging esoteric languages (such as Brainfuck and Befunge), but takes this aspect to the extreme, playing on the entangled histories of computer science and encryption. Despite this design, it is possible to write useful Malbolge programs.
That last line - I suppose it is possible to write useful programs. I have not seen any examples.
The 8th circle of hell is where people who commit fraud are punished. https://en.wikipedia.org/wiki/Inferno_(Dante)#Eighth_Circle_(Fraud)
One way it is difficult: it is a trinary language, not binary. It uses 0s, 1s & 2s instead of just 0s and 1s. If you are a programmer you might have just rolled your eyes and maybe even made a noise of disgust. Or perhaps you are intrigued.
Lou Scheffer's web page describes Malbolge and gives some information about how to use it to write programs. Even with these tips I find it challenging. He says, "The correct way to think about Malbolge, I'm convinced, is as a cryptographer and not a programmer." Unfortunately I am not a cryptographer.
http://www.lscheffer.com/malbolge.shtml
99 Bottles of Beer
In 2000 Andrew Cooke made an algorithm that wrote a "hello world" program in Malbolge. "hello world" is a program that simply prints "hello world" on the screen.
In 2005 Hisashi Iizawa wrote a program that, like the song, tells you how many bottles of beer are on the wall.
Scheffer dismissed it - "Conceptually this is exactly the same as the 'hello world'". I disagree. It also counts down. That might not seem like much, but it is slightly more complicated than "hello world".
I have been trying to modify the "hello world" program to say "hello imgur". I have been unsuccessful so far.
https://en.wikipedia.org/wiki/Malbolge
https://www.imdb.com/title/tt2191671
amp99
No thanks; Brainfuck for me.
snappysnaps
Thanks
mity0k23
I wonder how it would work on a ternary computer.
Firehoser
ballsoutflyer
Whoa, what an awful dream. Ones and zeros everywhere. And I thought I saw a two.
Il1kepuns
My knowledge is very basic but - isn't binary built into the integrated circuit at the core of the computer? How on earth does it use trinary?
bilgetea
The same way that code handles using base 10 numbers for our convenience even though at a low level it can’t use it.
Skuggen
It's mainly about how the virtual machine handles memory, not the underlying hardware. Makes proper memory management of your program harder (how many trits do I need to allocate to store a value that would normally need 16 bits, etc.).
Il1kepuns
Thank you!
MattJeffery
Wouldn't that be prime candidate to control extremely sensitive material or processes? Maybe run a communications network off it. I mean who could hack, intercept or interpret that? What if there would be the hardware too?
cryborg
It's not really "impenetrable" as Sherlock said. It is just hard to use.