Home > Electra > Malbolge

## Malbolge

September 21st, 2013

Fall quarter at UCSC has arrived, and with it, the latest iteration of my astrophysical fluid dynamics course.

This class covers the workings of bodies that are composed of gas, ranging from molecular clouds and accretion disks to stars and giant planets. These objects are complicated enough so that numerical calculations can often help to generate insight, so I’ve traditionally distributed some simple numerical routines for use in the class problem sets.

My first exposure to computers was in the mid-1970s, when several PLATO IV terminals were set up in my grade school in Urbana. My mid-1980s programming class was taught in standard Fortran 77. Somehow, these formative exposures, combined with an ever-present miasma of intellectual laziness, have ensured that Fortran has stubbornly remained the language I use whenever nobody is watching.

Old-style Fortran is now well into its sixth decade. It’s fine for things like one-dimensional fluid dynamics. Formula translation, the procedural barking of orders at the processor, has an archaic yet visceral appeal.

Student evaluations, however, tend to suggest otherwise, so this year, everything will be presented in python. In the course of making the sincere attempt to switch to the new language, I’ve been spending a lot of time looking at threads on stackoverflow, and in the process, somehow landed on the Wikipedia page for Malbolge.

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

The peculiarity of Malbolge is that it was specifically designed to be impossible to write useful programs in. However, weaknesses in this design have been found that make it possible (though still very difficult) to write Malbolge programs in an organized fashion.

Malbolge was so difficult to understand when it arrived that it took two years for the first Malbolge program to appear. The first Malbolge program was not written by a human being, it was generated by a beam search algorithm designed by Andrew Cooke and implemented in Lisp.

That 134 character first program — which outputs “Hello World” — makes q/kdb+ look like QuickBasic:

(‘&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=m:9wv6wsu2t |nm-,jcL(I&%$#”CB]V?Txuvtt Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj”Fhg\${z@\>

At first glance, it’s easy to dismiss Malbolge, as well as other esoteric programming languages, as a mere in-joke, or more precisely, a waste of time. Yet at times, invariably when I’m supposed to be working on something else, I find my thoughts drifting to a hunch that there’s something deeper, more profound, something tied, perhaps, to the still apparently complete lack of success of the SETI enterprise.

I’ve always had an odd stylistic quibble the Arecibo Message, which was sent to M13 in 1974:

It might have to do with the Bigfoot-like caricature about 1/3rd of the way from the bottom of the message.

Is this how we present to the Galaxy what we’re all about? “You’ll never get a date if you go out looking like that.”

Fortunately, I discovered this afternoon that there is a way to rectify the situation. The Lone Signal organization is a crowdfunded active SETI project designed to send messages from Earth to an extraterrestrial civilization. According to their website, they are currently transmitting messages in the direction of Gliese 526, and by signing up as a user, you get one free 144-character cosmic tweet. I took advantage of the offer to broadcast “Hello World!” in Malbolge to the stars.

Categories: Electra Tags: