PDA

View Full Version : Esoteric Programming Languages


SnoringFrog
04-03-2013, 07:48 PM
Anyone else have any experience messing with these? I kind of inadvertently fell into them. I had some work I had to do in Scheme, and the online compiler I ended up using had support for a few esoteric languages (Emoticon, unlamda, LOLCODE, and Brainfuck), and seeing them listen re-piqued my interest.

For anyone who isn't familiar with them, esoteric languages generally seemed designed to just be a pain to use for one reason or another. Some just use unusual names for things (like LOLCODE), but most operate in entirely different ways than most of the languages you'd be accustomed to.

Take Brainfuck (my current favorite), for instance. It's only got 8 possible commands, and operates basically like a Turing machine. This makes doing anything take quite a while, but it's an interesting challenge to try and implement things like multiplication and division without resorting to just looking up the algorithms. A Brainfuck derivative called Braincopter also works well for steganography by essentially supporting encoding Brainfuck programs as images.

I've got a whole list of these I want to eventually spend some time messing around with, but thusfar I've only used brainfuck and briefly dabbled in whitespace (which looks exactly how it sounds).

Dragoon
04-03-2013, 10:35 PM
I've never actually used any of them before, but I have looked into them a bit. I've been considering trying to write an interpreter/compiler for one of them as a side project when I have the time. I do have a programming language principles class next semester, so perhaps that'll present a good excuse to get around to it.

SnoringFrog
04-04-2013, 06:43 PM
An interpreter/compiler is on my list of things to do with these as well, eventually. Once I finish up my current brainfuck project (just squaring a one-digit interger from input, though I might end up making it two digits now that I can convert multi-digit values to the right string of ascii codes), I want to start working on a program that takes plain text and encodes it as a brainfuck program.

The initial version will be simple, but terribly inefficient (put the letter in one cell, output it, reset the cell to zero, move on to the next letter), then I'll start tweaking it to make it a bit more useful. The end goal is to eventually an automated way of going from plain text to braincopter and inserting it into an image.


The other thing I want to try to do is assemble a decent polyglot (program that runs in multiple languages). That's not strictly an esoteric language thing, but I'll probably use a few in it. My friend gave me the idea of making it print out JA*H (just another [insert lang being used here] hacker) in each language, so I think I'm going to go with that. Worst case I'll just downgrade to having an identical message all across the board.

Iridium
04-05-2013, 03:26 PM
I think it'd be quite fun to write a compiler that compiles to something weird like Brainfuck. Pretty sure such things exist, but writing compilers is fun, not to mention a good programming exercise.