En cuestión los lenguajes de programación se supone que son fáciles de utilizar y aprender. Su sintaxis debe ser clara y comprensible, y sus implementaciones, rápidas y libres de errores. A veces, los diseñadores crean un lenguaje que va en contra de estos principios, por temas de investigación o por simple diversión.
Ya antes les habíamos hablado de algunos este tipo de lenguajes de programación extraños y divertidos pero ahora es momento de ahondar y mostrarles de qué manera es su sintaxis y la manera en que esa frase que abre el camino a cuestiones más complejas de «Hola Mundo» en diferentes contextos:
Trollscript: se trata de un dialecto del popular Brainfuck (del que también hablaremos), se instala como una gema de Ruby y tiene una sintaxis tan sencilla como ooo, Incrementa el puntero de datos a la siguiente celda a la derecha; ool, decrementa el puntero de datos a la siguiente celda a la izquierda; olo, incrementa en uno el byte apuntado; y así sigue.
Los scripts empiezan con Tro y terminan con ll. Dicho esto, así quedaría un ¡Hola Mundo! en Trollscript:
-
Trooloolooloolooloolooloolooloololloooooloolooloolooloolooloooool ooloolooloolooloolooloolooloooooloolooloooooloooloolooloololllllooooloolo loooooololooolooloolooloolooloololoolooolooloololooooooloololooooloololoo loolooloolooloolooloolooloolooloolooloololooooolooolooloololooollollollol lollolllooollollollollollollollollloooooololooooolooll
asdf: Este lenguaje utiliza solo 4 instrucciones para mover punteros en la memoria, cambiar bits y limpiar indicadores. Con eso es capaz de hacer un montón de cosas. Algo que vuelve complicado es cómo distinguirlo de un texto malo de prueba. El «Hola mundo» sería así:
- asaasaasssasaasssasaaaasssasaasssasaaaaaaaasssasaaaasssasaaaasssasaasssasaasss asaasssasaasssasaaaasssasaasssasaaaasssasaaaaaasssasaaaasssasaasssasaaaasssasa aaaaasssasaaaasssasaasssasaaaaaaaasssasaaaasssasaasssasaasssasaaaasssasaaaaaaa asssasaasssasaaaaaaaaaaaasssasaaaaaasssasaasssasaaaaaasssasaasssasaaaasssasaas ssasaaaaaaaasssasaasssasaaaaaasssasaaaasssasaasssasaaaasssasaaaasssasaasssasaa aasssasaaaaaasssasaaaasssasaaaasssasaasssasaaaaaaaasssasaasssasaaaaaaaasssasaa
~ English es un lenguaje de programación que intenta imitar un lenguaje que suene natural. Su sintaxis es muy sencilla para dar el escritor una mayor libertad de expresión. No hay funciones que puedan ser definidas por el programador, solo puede utilizar las ya incorporadas. He aquí un ejemplo de programa:
- Display «Hello world!» and a newline.
Stop the program.
Gravity es un lenguaje de programación que se basa en una idea de Newton, y es completamente distinto a cualquier otro lenguaje de programación ya que, aunque su comportamiento está bien definido y es determinista, la evolución de su espacio no es computable debido a las ecuaciones diferenciales en las que se basa. Su ejecución se basa en la simulación de los efectos de la gravedad en un número infinito pero contable de partículas.
- (0,0) : 2
- (1,1,1,1, 2) -> 3 : 72
- (1,1,1,1, 3) -> 4 : 101
- (1,1,1,1, 4) -> 5 : 108 (1,1,1,1, 5) -> 6 : 108
- (1,1,1,1, 6) -> 7 : 111
- (1,1,1,1, 7) -> 8 : 32
- (1,1,1,1, 8) -> 9 : 119
- (1,1,1,1, 9) -> 10 : 111
- (1,1,1,1,10) -> 11 : 114
- (1,1,1,1,11) -> 12 : 108
- (1,1,1,1,12) -> # : 100
Chef es desde luego el lenguaje ideal para estos días de cocineros estrellas y audiencias masivas para programas gastronómicos. Creado por David Morgan-Mar, un programa-receta debe estar formado por un título, unas variables con sus correspondientes valores (los ingredientes) y una lista de manipulaciones de pila (los pasos a seguir).
- Hello World Souffle.
- Ingredients.
- 72 g haricot beans
- 101 eggs
- 108 g lard
- 111 cups oil
- 32 zucchinis
- 119 ml water
- 114 g red salmon
- 100 g dijon mustard
- 33 potatoes
- Method.
- Put potatoes into the mixing bowl.
- Put dijon mustard into the mixing bowl.
- Put lard into the mixing bowl.
- Put red salmon into the mixing bowl.
- Put oil into the mixing bowl.
- Put water into the mixing bowl.
- Put zucchinis into the mixing bowl.
- Put oil into the mixing bowl.
- Put lard into the mixing bowl.
- Put lard into the mixing bowl.
- Put eggs into the mixing bowl.
- Put haricot beans into the mixing bowl.
- Liquefy contents of the mixing bowl.
- Pour contents of the mixing bowl into the baking dish.
- Serves 1.
Malbolge es un lenguaje de programación inventado por Ben Olmstead en 1998. Como curiosidad, lleva el nombre del octavo círculo del infierno, en el infierno de Dante. El nombre no fue elegido al azar – el lenguaje fue diseñado específicamente para que sea imposible escribir programas útiles. Sólo un experto en criptografía podría escribir un programa significativo en él.
- (‘&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#»
`CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj»Fhg${z@>
Befunge es un lenguaje de programación en dos dimensiones. Tu código se coloca en un campo de juego con un tamaño fijo. Cada celda del campo de juego puede contener ya sean códigos o datos, y tu programa puede reemplazar los datos de cualquier celda que desees. El intérprete comienza en la celda superior izquierda y continúa sucesivamente a la derecha.
- 0«!dlroW ,olleH»>:#,_@
Algo que debemos tener presente es que esto es sólo una pequeña parte, ya que la lista de lenguajes de programación es enorme. En la Wikipedia se recogen nada menos que 700 lenguajes de programación diferentes, que puedes examinar alfabéticamente, por categoría o paradigma, cronológicamente o incluso atendiendo a su genealogía.