in

Befunge: El lenguaje de programación más extraño

Una pesadilla a la hora de compilar, pero muy entretenido de ver en ejecución

Si los principales lenguajes de programación en el mercado ya resultan difíciles, imaginen uno especialmente diseñado para complicar al máximo su compilación, y que además trabaja en dos dimensiones, de modo tal que su ejecución cambia de dirección. En otras palabras, una «máquina de Rube Goldberg» en código. Bueno… ese lenguaje existe, se llama Befunge, y fue diseñado por Chris Pressey en 1993.

Cada programador tiene un lenguaje favorito, y para ser honestos, cualquier comparación entre uno y otro garantiza una pelea en estos días. Si tenemos las mismas discusiones con vinos, cervezas, helados, pizzas, coches, aviones, ropa, clubes de fútbol, teléfonos, hardware y un largo etcétera, lo último que deberíamos esperar entre los lenguajes de programación es una excepción. Sin embargo, lo que sí podemos hacer es divertirnos con ellos, y en ciertas ocasiones, lo único que se necesita es algo raro. Por ejemplo: Befunge. Su creación se remonta a septiembre de 1993, y si es la primera vez que lo escuchan nombrar, honestamente no puedo culparlos. Después de todo, hace cosas como esta:

Eso no es tan extraño…
… pero esto es puro delirio.

El primero es un caso bastante lineal del Hello World. El cursor naranja lee el código, el símbolo inicia una cadena (la cual termina cuando encuentra a otro “), las comas equivalen al Print de Basic, y el arroba finaliza el programa. Y el segundo es lo mismo… solo que mucho más complicado. El cursor sube y baja, vuelve a subir, cambia de dirección, una locura. El usuario observa un espacio de 80 x 25 caracteres, pero en realidad tiene la forma de un toroide, o sea que el cursor aparece del otro lado cuando cruza un límite. Los símbolos (< > v ^) marcan la dirección que necesita seguir el cursor, y como la pila es Last In First Out, el texto debe estar al revés.

Ejemplo de un bucle
¡Números aleatorios también!

¡Y eso no es todo! Un signo de pregunta asigna una dirección aleatoria para el código, y la letra «p» permite su modificación al vuelo. Las dos especificaciones disponibles de Befunge son Befunge-93 y Funge-98, pero más allá de la elección, cualquier programador tendrá las manos llenas con este lenguaje. Un viejo texto dedicado a Befunge sugiere que es una mezcla «entre Forth y Lemmings», y creo que tiene razón.

Reportar

¿Qué te pareció?

Escrito por Lisandro Pardo

2 Comments

Leave a Reply

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Por qué todos los mapas del mundo que conoces están errados

Revengers: Los absurdos muñecos piratas de “The Avengers” que se agotaron en minutos (Galería)