14 lenguajes de programación para romper la caja pero que funcionan (más o menos)

Necesito sus botas, su ropa y su motocicleta – Error fatal: el número o el tipo de los parámetros son incorrectos

Hay más lenguajes de programación qué botellas. Los tenemos de bajo o alto nivel, declarativos, procedimentales, orientados a objetos … y tenemos los llamados lenguajes esotéricoslenguajes peculiares con sintaxis muy básica y alfabetos reducidos que casi parecen un trolleado de sus creadores (aunque suelen ser Turing completos, ojo). En este artículo que tiene en la mano, vamos a enumerar y revisar doce de estos lenguajes esotéricos para su diversión, asombro y sorpresa.

Trollscript

Y por supuesto, si hablamos de lenguajes esotéricos que suenan como trolleado, nada mejor que empezar este tour con Trollscript. Es un dialecto del popular Brainfuck (del que también hablaremos), se instala como una gema Ruby y tiene una sintaxis tan sencilla como la siguiente:

  • ooo – Incrementa el puntero de datos a la siguiente celda a la derecha
  • ool – Disminuye el puntero de datos a la siguiente celda a la izquierda
  • olo: aumenta el byte señalado en uno
  • oll – Disminuye el byte señalado en uno.
  • loo: obtiene el valor ASCII de la celda de destino
  • lol – Acepta un byte de entrada guardando su valor en la celda de destino
  • llo – Si el byte es cero, avance hasta encontrar la siguiente coincidencia
  • lll: si el byte es cero, retroceda hasta encontrar la siguiente coincidencia

Los scripts comienzan con Tro y terminan con ll. Dicho esto, así es como ¡Hola Mundo! en Trollscript:

Trollscript

Una curiosidad: este Trollscript tiene una licencia pública «Haz lo que quieras para hacer lo que quieras». Épico.

Más info | Trollscript, un lenguaje de programación para Trolls

Brainfuck

El padre de Trollscript y muchos otros fue diseñado por Urban Muller en 1993 basado en la máquina de Turing y desde entonces ha estado a la altura de su nombre y de su puto cerebro. Tiene solo 8 instrucciones de un solo carácter cada una:

  • «>»: Aumenta el puntero.
  • »
  • «+»: Aumenta el byte señalado.
  • «-» – Disminuye el byte señalado.
  • «.» – Escribe el byte apuntado al flujo de salida.
  • «,»: Lee un byte del flujo de entrada y lo almacena en el byte señalado.
  • «[» – Avanza a la instrucción inmediatamente posterior al ] correspondiente si el byte apuntado actualmente es nulo (si es 0).
  • «]»: Vuelve a la instrucción inmediatamente después de la [ correspondiente si el byte actualmente apuntado no es nulo (si es distinto de 0).

Un ejemplo de ¡Hola Mundo! en Brainfuck es tan bonito y edificante como esto:

Brainfuck

Más info | Brainfuck

Yo empecé a programar profesionalmente cuando no existía Stack Overflow

Ook!

Seguimos con otro lenguaje surgido a raíz de Brainfuck pero esta vez usando el vocabulario empleado por el bibliotecario del MundoDisco de Terry Pratchett. Este personaje no es precisamente Cervantes y sólo emplea tres vocablos: Ook., Ook! y Ook? Con estas palabras reservadas, el creador de Ook!, David Morgan-Mar, construye las ocho instrucciones de Brainfuck:

  • Ook. Ook? – Incrementa el puntero.
  • Ook? Ook. – Decrementa el puntero.
  • Ook. Ook. – Incrementa el byte apuntado.
  • Ook! Ook! – Decrementa el byte apuntado.
  • Ook! Ook. – Salida (ASCII) del byte apuntado.
  • Ook. Ook! – Entrada (ASCII) sobre el byte apuntado.
  • Ook! Ook? – Avanza a la instrucción inmediatamente posterior al Ook? Ook! correspondiente si el byte actualmente apuntado es cero.
  • Ook? Ook! – Retrocede a la instrucción inmediatamente posterior al Ook! Ook? correspondiente si el byte actualmente apuntado no es cero.

Con estos mimbres tenemos un ¡Hola Mundo! tal que así, belleza pura:

Ook

Pd: Yo sólo tengo controlado otro personaje de ficción con un vocabulario tan escueto: Groot de ‘Los Guardianes de la Galaxia’. Y claro, también tiene su lenguaje de programación.

Pd2: ¿qué me olvido de Hodor? Para nada.

Más info | Ook!

Chicken

Venga, seguimos con lenguajes de programación con un vocabulario reducido, en esta ocasión una única palabra en inglés: chicken. Tampoco es que fuera muy misterioso cual es el nombre del lenguaje creado por el programador sueco Torbjörn Söderstedt inspirado por ese avícola paper de Doug Zongker.

A pesar de contar con un vocabulario tan escueto, Chicken dispone de 11 instrucciones que dependen del número de veces que aparezca la palabra chicken separada por espacios en blanco:

#

Descripción de la instrucción

0

Se detiene la ejecución

1

Se imprime en pantalla la palabra «chciken»

2

Se suman los dos valores más arriba en la pila

3

Se restan los dos valores más arriba en la pila

4

Se multiplican los dos valores más arriba en la pila

5

Se comparan los dos valores más arriba en la pila

6

La siguiente instrucción indica la fuente desde la cual cargar. 0 cargas de la pila, 1 cargas del input del usuario. El valor más arriba de la pila apunta a la dirección / índice a cargar en la pila

7

El valor más arriba de la pila apunta a la dirección / índice donde almacenar. El valor a continuación se se «popeará» y se almacenará

8

El valor más arriba de la pila indica donde saltar si la condición siguiente es verdadera

9

Interpreta el valor más arriba de la pila como ASCII y «pushea» el correspondiente carácter

10+

«Pushea» el número literal n-10 en la pila

El ¡Hola Mundo! con este lenguaje sería un trozo de código larguísimo así que casi mejor que os pongo la presentación de la que surgió todo. La gente, como se puede observar, se «despolla» bien a gusto.

Más info | Pollo

No era bueno en matemáticas en la escuela secundaria y la universidad, pero soy un buen programador

Cocinero

Programas ocultos en recetas de cocina, Cocinero Sin duda es el lenguaje ideal para estos días de chefs estrella y público masivo para programas gastronómicos. Creado por David Morgan-Mar, a programa-receta Debe estar compuesto por un título, unas variables con sus valores correspondientes (los ingredientes) y una lista de manipulaciones de pila (los pasos a seguir). ¡Un ejemplo de Hello World! sería algo como esto:

Cocinero

La hacker-Chicote El creador de Chef dice que los programas no solo deberían funcionar, sino que deberían parecer agradables. Hay gente para todo.

Más info | Cocinero

Malbolge

Un lenguaje inspirado (y bautizado) en el octavo infierno de ‘La Divina Comedia’ de Dante. Eso debería ser suficiente para tener miedo del lenguaje diseñado por Ben Olmstead en 1998. Si además añadimos que el bueno de Olmstead planeó que fuera el lenguaje de programación más difícil del mundo y para eso lo uso sintaxis basada en técnicas criptográficasBueno, al final tenemos un ¡Hola mundo! tal que:

Malbolge

Habernos matado …

Más info | Malbolge

Estos son los lenguajes de programación más populares según la cantidad de tutoriales buscados en Google

Espacio en blanco

Un idioma cuyos únicos tres las palabras reservadas son espacios en blanco, tabulación y salto de línea suena a broma y de hecho fue publicado el 1 de abril, April’s Fool, el equivalente anglosajón de nuestro Día de los Santos Inocentes. Pero la verdad es que funciona y aquí tienes un ¡Hola Mundo! convenientemente ajustado para que no se vea como uno de esos memes de desplazamiento:

Espacio en blanco en Vim2

Más información (y ejemplos) | Espacio en blanco

Piet

Creado por el mismo hombre que el anterior de la lista, David Morgan-Mar, Piet es un lenguaje cuya principal característica es que sus programas son mapas de bits que simulan el arte abstracto. El vocabulario se compone de 20 colores (no hay cosas raras como blanquecino o rosa pálido) y el puntero varía según la diferencia de tono e intensidad entre colores contiguos en el mapa de bits.

¡Qué sería de un Hola Mundo! en este idioma bautizado como el pintor holandés Piet Mondrian? Bueno, eso es psicodélico:

Programa Piet Hola Mundo

Más info | Piet

ArnoldC

La expresión anglosajona de «más grande que la vida» se creó para hablar de ArnoldC: un lenguaje de programación cuyo Las instrucciones son frases célebres de los personajes interpretados por Don Arnold Schwarzeneger. (alias El Chuache) en la pantalla grande. Instrucciones tan épicas como:

  • Falso: mentí
  • Verdadero: NO HAY PROBLEMA
  • Si: PORQUE VOY A DECIR POR FAVOR
  • De lo contrario: MIERDA
  • EndIf: NO TIENES RESPETO POR LA LÓGICA
  • Mientras: PEGA ALREDEDOR
  • EndWhile: CHILL
  • PlusOperator: LEVANTARSE
  • MinusOperator: BAJAR
  • MultiplicationOperator: ESTÁS DESPEDIDO
  • DivisionOperator: HE TENÍA QUE DIVIDIR
  • ModuloOperator: LO DEJO IR
  • EqualTo: TU NO ERES TU ERES YO
  • Mayor que: DEJAR UN POCO DE VAPOR BENNET
  • O: CONSIDERA QUE UN DIVORCIO
  • Y: KNOCK KNOCK
  • DeclareMethod: ESCÚCHAME CON MUY ATENCIÓN
  • Método NonVoid: DAR AIRE A ESTAS PERSONAS
  • Método Argumentos: NECESITO TU ROPA, TUS BOTAS Y TU MOTOCICLETA
  • Regresar: VOLVERÉ
  • EndMethodDeclaration: HASTA LA VISTA, BABY
  • Método de llamada: HAZLO AHORA
  • AssignVariableFromMethodCall: LLÉVATE EL CULO A MARTE
  • DeclareInt: HEY NAVIDAD
  • SetInitialValue: USTED NOS CONFIGURÓ
  • BeginMain: ES HORA DEL SHOW
  • EndMain: HA SIDO TERMINADO
  • Imprimir: HABLAR CON LA MANO
  • ReadInteger: QUIERO HACERTE MUCHAS PREGUNTAS Y QUIERO QUE LAS RESPUESTAS INMEDIATAMENTE
  • AssignVariable: LLEGAR AL CHOPPER
  • SetValue: AQUÍ ESTÁ MI INVITACIÓN
  • EndAssignVariable: SUFICIENTE TALK
  • ParseError: ¿Qué diablos hice mal?

Con tal materia prima, ¡un Hola Mundo! es pura elegancia austriaca:

Arnoldc

Si alguien sabe cómo enumerar la película de cada instrucción y luego hacer un programa para las torres de Hanoi, lo consideraré mi Dios y le rezaré todas las noches.

Más info | ArnoldC, el lenguaje basado en frases de Arnold Schwarzeneger

17 desarrolladores nos dicen qué lenguaje de programación elegirían para empezar de cero y por qué

Beatnik

Creado en 2000 por Cliff Biffle, la curiosidad de Beatnik es eso usa palabras en inglés, les asigna valores como si fuera Scrabble o en idioma español, y dependiendo del valor, entre 0 y 255, realizará una acción o función:

  • <5 -> No hace nada
  • 5 -> Pon el valor de la siguiente palabra en la pila
  • 6 -> Toma un número de la pila y deséchalo
  • 7 -> Toma dos números de la pila, súmalos e ingresa el resultado
  • 8 -> Ingrese un carácter y ponga su valor en la pila

Escribe un «¡Hola mundo!» en Beatnik es muy largo, así que nos conformaremos con un «¡Hola!»:

Beatnik

Más info | Beatnik

Shakespeare

Nos acercamos al final y es hora de un lenguaje culto y elegante ya que está inspirado en los personajes y tramas del dramaturgo más famoso de la historia. Su funcionamiento es similar al de Chef (mismo creador no en vano): título, lista de personajes con sus descripciones y finalmente los actos y escenas necesarios. ¿Qué no está claro? Bueno, aquí hay un ejemplo de ¡Hola mundo!:


Romeo, a young man with a remarkable patience.
Juliet, a likewise young woman of remarkable grace.
Ophelia, a remarkable woman much in dispute with Hamlet.
Hamlet, the flatterer of Andersen Insulting A/S.

               Act I: Hamlet's insults and flattery.
               Scene I: The insulting of Romeo.
[Enter Hamlet and Romeo]

Hamlet: ¡Mentirás, estúpido, huérfano de padre, gran cobarde apestoso y tonto! ¡Eres tan estúpido como la diferencia entre un héroe valiente rico y guapo y tú mismo! ¡Di lo que piensas! Eres tan valiente como la suma de tu gordo pequeño relleno mal usado, polvoriento, viejo y podrido braguero y un hermoso día de verano soleado, cálido, cálido y soleado. ¡Estás tan saludable como la diferencia entre la suma de la más dulce rosa roja y mi padre y tú! ¡Di lo que piensas! Eres tan cobarde como la suma de ti mismo y la diferencia entre un gran reino orgulloso y un caballo. Di lo que piensas. ¡Di lo que piensas!
[Exit Romeo] Escena II: El elogio de Julieta.
[Enter Juliet] Hamlet: ¡Eres tan dulce como la suma de la suma de Romeo y su caballo y su gato negro! ¡Di lo que piensas!
[Exit Juliet] Escena III: El elogio de Ofelia.
[Enter Ophelia] Hamlet: Eres tan hermosa como el producto de una gran ciudad rural y mi increíble bolso bordado sin fondo. ¡Di lo que piensas! Eres tan amoroso como el producto del cielo más azul, más claro, más dulce y la suma de una ardilla y un caballo blanco. Eres tan hermosa como la diferencia entre Julieta y tú. ¡Di lo que piensas!
[Exeunt Ophelia and Hamlet]

               Act II: Behind Hamlet's back.
               Scene I: Romeo and Juliet's conversation.
[Enter Romeo and Juliet]

Romeo: Di lo que piensas. Estás tan preocupado como la suma de ti mismo y la diferencia entre mi pequeño hámster liso y mi nariz. ¡Di lo que piensas! Julieta: ¡Di TU mente! ¡Eres tan malo como Hamlet! Eres tan pequeño como la diferencia entre el cuadrado de la diferencia entre mi pequeño pony y tu gran perro peludo y el cubo de tu lamentable pequeña bragueta. ¡Di lo que piensas!
[Exit Romeo] Escena II: Conversación de Julieta y Ofelia.
[Enter Ophelia] Julieta: Eres tan bueno como el cociente entre Romeo y la suma de un pequeño animal peludo y una sanguijuela. ¡Di lo que piensas! Ofelia: ¡Eres tan repugnante como el cociente entre Romeo y el doble de diferencia entre un muérdago y una ampolla infectada que rezuma! ¡Di lo que piensas!
[Exeunt]

Un poco largo, ¿eh? Para hacer una secuencia de Fibonacci necesitas escribir tú mismo un volumen de ‘Canción de hielo y fuego’ …

Más info | Shakespeare

7.000 programadores responden: Java, Python y JavaScript son los lenguajes favoritos, y Go se perfila como el más prometedor

CÉSPED

Lengua creada en Japón en 2006 y cuya principal característica y aspecto diferenciador es que recrear la formación de césped usando solo «W», «w» y «v». ¿Cómo ha estado tu cuerpo?

Incluso si parece una mierda como un piano, Grass es un lenguaje de Turing completo basado en el cálculo lambda. Un ejemplo de código en Grass sería, por ejemplo, el siguiente:

Césped

Más info | Césped

reMorse / reMorse2

¿Fuiste a los boy scouts pero nunca usaste ese descuidado código Morse que te enseñaron? Calma porque remordimiento es tu idioma. Tengo 4 instrucciones: punto, barra, barra de puntos y punto de barra. Y tirar millas.

reMorse2 es un dialecto de remordimiento pero Turing completo (es decir, solo con punto y barra como instrucciones). Un ejemplo de código en este lenguaje sería:

Remordimiento

Más info | remordimiento

Rust es el lenguaje de la moda y hay quien cree que se convertirá en el sucesor de la mítica C

LOLCODE

Empezamos con trolls y acabamos volviendo al mundo de los memes ya que LOLCODE, diseñado en 2007 por Adam Lindsay, usa como palabras reservadas las frases, palabras y expresiones de los memes de gatitos Y además.

Su sintaxis es la siguiente:

  • HAI: inicia el programa.
  • PUEDE TIENE [LIBRARY]? – Pregunta si una biblioteca (la biblioteca de entrada / salida, por ejemplo) está disponible, la carga si la respuesta es correcta y arroja una excepción o no.
  • VISIBLE [MESSAGE] – Imprime un mensaje en la pantalla.
  • KTHXBYE: cierra el programa.

Por lo tanto, ¡Hola mundo! un barco pronto sería:

Lolcode

Veamos si algún desarrollador nativo con insomnio nos deleita con un HOLA, QUÉ ESTÁS HACIENDO o similar, el público arde de deseo.

Más info | LOLCODE

Has estado queriendo mas? Bueno, la wiki de ESOLANG, que recopila docenas, incluso cientos, de idiomas esotéricos, puede proporcionarle horas y horas de entretenimiento, asombro e incluso inspiración. No hay problema.

Conan

Leave a Reply