Piet - an esoteric programming language

Tuesday, August 11, 2009

There’s a certain group of programmers out there that like to come up with programming languages just for the fun of it. Some of them have profanity as their names, and some are based on internet memes. Whatever the case may be, some individual out there enjoyed thinking up the language, and many of these languages are actually useable.


One esoteric language that stands out, for me, at least, is Piet, created by David Morgan-Mar. Based on the idea of making programs that look like abstract art, Piet allows the programmer to express their software in the form of coloured blocks. Numbers are represented by blocks of pixels containing a pixel count equal to the number itself. Operations are performed by changes in hue or darkness.


As an example, here is a Piet program I wrote to output the string “Hello World”. This image is in fact the entirety of the program, and can be run in any of the Piet interpreters out there. Other examples of Hello World programs are available on David’s site, as well as some other programs cooked up by Piet enthusiasts.


One property of a programming language is that it can be Turing-complete. What this means is: can the programming language be used to solve any arbitrary computing problem? In fact, extra kudos go to those esoteric programming language creators who create one that is Turing-complete.


It is believed that Piet is Turing-complete, but as of yet no one has stepped forward to implement a program to test this. However, given a stack of unlimited size, a reasonable interpreter for the language Brainf*ck could be implemented. Brainf*ck itself has been proven to be Turing-complete, and since Turing-completeness is transitive, a programming language that can interpret a Turing-complete language can be said to be Turing-complete as well.


Piet can be used to produce some functional, beautiful pieces of software, and it definitely piqued my curiosity when I first found out about it. Maybe you’ll find it interesting too, maybe you’ll write something in it, maybe you’ll join the discussion forum. Whatever the case may be, it’s one language that definitely has something special going for it.

0 comments:

 
The Idea Oubliette - Templates para novo blogger