El lenguaje de programación Piet

Composition with red, yellow and blue

«Composition with red, yellow and blue». Piet Mondrian (1921)

La pintura anterior inspiró a un lenguaje de programación esotérico, en el que los programas parecen obras de arte moderno.

Las mecánicas del lenguaje son muy sencillas: tienes un stack y puedes realizar operaciones sobre esta dependiendo de cómo "pintes" tu programa. Esto permite que dos programas que hagan exactamente lo mismo se vean completamente diferentes.

La especificación de Piet explica cómo funcionan exactamente los programas.

A mí me pareció muy interesante este lenguaje, así que decidí intentar hacer algo con él. Al principio es muy confusa la forma en la que el lenguaje funciona, pero poco a poco le vas agarrando la onda. Si tienes experiencia con lenguajes de bajo nivel te resultará aún más sencillo.

Me propuse hacer el primer problema de Project Euler (intentando darle un toque artístico) y aquí está:

Piet Project Euler 1

O una versión agrandada para apreciarlo mejor:

Piet Project Euler 1 Enlarged

Y con esta imagen se puede ver el flujo del programa:

Piet Project Euler 1 Trace

Al momento de interpretar la imagen (usé npiet), el programa imprime a la consola el resultado del problema: <SPOILER>233168</SPOILER>.

Me divertí mucho haciendo este programita, probablemente después haga algo más con este lenguaje. O tal vez aprenda algún otro lenguaje esotérico.