Malbolge - this is the kind of sh!t computer programmers do for "fun" - at least neurotic programmers like me

Jun 11, 2023 7:07 PM

cryborg

Views

25733

Likes

90

Dislikes

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

malbolge

programming

computer_science

puzzle

computers

No thanks; Brainfuck for me.

2 years ago | Likes 5 Dislikes 0

Thanks

2 years ago | Likes 2 Dislikes 0

I wonder how it would work on a ternary computer.

2 years ago | Likes 2 Dislikes 0

2 years ago | Likes 2 Dislikes 0

Whoa, what an awful dream. Ones and zeros everywhere. And I thought I saw a two.

2 years ago | Likes 3 Dislikes 0

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?

2 years ago | Likes 11 Dislikes 0

The same way that code handles using base 10 numbers for our convenience even though at a low level it can’t use it.

2 years ago | Likes 4 Dislikes 0

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.).

2 years ago | Likes 17 Dislikes 1

Thank you!

2 years ago | Likes 11 Dislikes 0

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?

2 years ago | Likes 2 Dislikes 1

It's not really "impenetrable" as Sherlock said. It is just hard to use.

2 years ago | Likes 2 Dislikes 1