Top 10 lenguajes de programación realmente extraño

Top 10 lenguajes de programación realmente extraño (Tecnología)

Esta es una lista de algunos de los lenguajes de programación más extraños que jamás verás. Estos tipos de lenguajes se denominan habitualmente “lenguajes de programación esotéricos”. Un lenguaje de programación esotérico (a veces acortado a esolang) es un lenguaje de programación computacional diseñado como una prueba de los límites del diseño del lenguaje de programación, para experimentar con ideas extrañas o simplemente como una broma, en lugar de por razones prácticas. Generalmente no hay intención de que el lenguaje sea adoptado para la programación del mundo real. Tales lenguajes son a menudo populares entre hackers y aficionados.

La usabilidad rara vez es una alta prioridad para tales idiomas; a menudo todo lo contrario. El objetivo habitual es eliminar o reemplazar las características del lenguaje convencional mientras se mantiene un lenguaje que es Turing-complete, o incluso uno para el que se desconoce la clase computacional.

Se han desarrollado muchos lenguajes fascinantes e improbables, y hay una comunidad pequeña pero activa en Internet de personas que los crean, programan y debaten.

Un programa "Hello World" ha sido tradicionalmente el primer programa que la mayoría de la gente aprende en un idioma que es nuevo para ellos. Es un código (generalmente) simple que emite las palabras “¡Hola, mundo!” En un dispositivo de salida, generalmente la pantalla de la computadora.

Por favor, asegúrese de mirar todos los códigos de ejemplo, que son, en la mayoría de los casos, bastante divertidos.

10

INTERCAL

INTERCAL se creó en 1972, por lo que probablemente sea el primer lenguaje de programación esotérico. Donald R. Woods y James M. Lyon (en la foto de arriba) lo inventaron, con el objetivo de crear un lenguaje sin similitudes con ningún lenguaje de programación existente.

Según el manual original de los autores, "El nombre completo del compilador es 'Idioma del compilador sin acrónimo pronunciable', que es, por razones obvias, abreviado 'INTERCAL'."

Las operaciones comunes en otros idiomas tienen una sintaxis críptica y redundante en INTERCAL. El Manual de referencia de INTERCAL contiene muchas instrucciones paradójicas, sin sentido o humorísticas, como:
"¡Precaución! ¡En ningún caso confunda la malla con el operador de entrelazado, excepto en circunstancias confusas! "

INTERCAL tiene muchas otras características diseñadas para hacerlo aún más estéticamente desagradable para el programador: usa declaraciones como "IGNORE" y "FORGET", así como modificadores como "POR FAVOR". Esta última palabra clave proporciona dos razones para el rechazo del programa por parte del compilador: si "POR FAVOR" no aparece con suficiente frecuencia, el programa se considera insuficientemente educado, y el mensaje de error lo dice; si con demasiada frecuencia, el programa podría ser rechazado por excesivamente educado.

Hola Mundo en INTERCAL, con código equivalente en C para comparación

9

Espacio en blanco

Como su nombre indica, Whitespace, diseñado en 2002 por Edwin Brady y Chris Morris, es un lenguaje de programación esotérico que usa solo caracteres de espacio en blanco como sintaxis. Por lo tanto, solo los espacios, las pestañas y los saltos de línea tienen significado. Cuando se publicó el 1 de abril de 2003, la mayoría de las personas lo tomaron como una broma de April Fools, que no fue así.

A diferencia de la mayoría de los lenguajes de programación, que ignoran o asignan poco significado a la mayoría de los caracteres de espacios en blanco, el intérprete de espacios en blanco ignora cualquier carácter que no sea de espacios en blanco. Una consecuencia interesante de esta propiedad es que un programa de espacio en blanco se puede contener fácilmente dentro de los caracteres de espacio en blanco de un programa escrito en otro idioma, haciendo que el texto sea políglota.

La foto de arriba es "Hola mundo" en los espacios en blanco.


8

Cocinero

Chef, diseñado por David Morgan-Mar en 2002, es un lenguaje de programación esotérico en el que los programas parecen recetas de cocina. Las variables tienden a tener el nombre de los alimentos básicos, las pilas se llaman "tazones de mezcla" o "platos para hornear" y las instrucciones para manipularlos "mezclar", "revolver", etc. "Como una pila de panqueques".

De acuerdo con la página de inicio de Chef, los principios de diseño para Chef son:

- Las recetas del programa no solo deben generar resultados válidos, sino que deben ser fáciles de preparar y deliciosos.
- Las recetas pueden ser de interés para cocineros con diferentes presupuestos.
- Las recetas serán métricas, pero pueden usar medidas de cocción tradicionales como tazas y cucharadas.

Hola mundo en chef

7

Velato

Velato es un lenguaje que utiliza archivos MIDI como código fuente. Los programas en Velato se definen por el tono y el orden de las notas. Está pensado para permitir flexibilidad en la composición, por lo que los programas funcionales no sonarán necesariamente como notas aleatorias. Hay una tendencia a que los programas de Velato tengan armonías de jazz.

Todas las declaraciones en Velato comienzan con una nota de "raíz de comando"; Los intervalos de esta nota se traducen en comandos y expresiones. La raíz del comando se puede cambiar entre declaraciones, para permitir progresiones más musicales (o al menos menos repetitivas).

Por supuesto, como todos los archivos MIDI, los programas de Velato también pueden representarse como partituras. La foto de arriba es una partitura, que puedes escuchar aquí.

6

Shakespeare

El lenguaje de programación Shakespeare (SPL) fue diseñado por Jon Åslund y Karl Hasselström. Al igual que Chef (artículo # 8), está diseñado para hacer que los programas parezcan algo diferente a los programas; En este caso, obras de Shakespeare.

La primera línea en un programa de Shakespeare se llama el "título" y actúa como un comentario. La "Dramatis Personae" es la sección donde se declaran las variables. Cada nombre de variable debe ser el nombre de un personaje de una obra de Shakespeare.

Un fragmento de código en Shakespeare se divide en "Actos", que contienen "Escenas", en las que interactúan los personajes (variables). Cada acto y escena está numerado con un número romano y sirve como etiqueta GOTO. Están escritos en el formulario:

Acto I: los insultos y la adulación de Hamlet.
Escena I: El insulto a Romeo.

Antes de que los "personajes" (variables) puedan "actuar" (actuar sobre ellos), primero deben estar "en el escenario". Para llamar una variable a la etapa se usa el comando "Enter". Para indicar a los personajes que salgan del escenario, use el comando "Salir". "Exeunt" llama a más de un personaje para que se vaya, o en el caso de que no aparezcan caracteres, todos los personajes abandonarán el escenario.

Hola mundo en Shakespeare


5

Omgrofl

Omgrofl es un lenguaje creado en 2006 por Juraj Borza. En marcado contraste con la entrada anterior, sus palabras clave se asemejan a la jerga de Internet. El nombre viene de combinar la jerga "palabras" Dios mio y rofl. Rofl es en realidad uno de los comandos de Omgrofl. Omgrofl no distingue entre mayúsculas y minúsculas, por lo tanto jajaja es lo mismo que LoL. Puede usar esto para producir un código "más agradable".

Las variables en Omgrofl deben ser una forma de la palabra del argot jajaja, como lol, lool, loool, looool, etc. Una variable se puede definir como:

lol iz 4

wtf condición es una declaración condicional (como Si Cía). Las declaraciones hasta el brb correspondiente se ejecutan solo si la condición es verdadera.

Uso:

lol iz 1
wtf lol iz liek 1
rofl lol
lmao lol
brb

Las condiciones posibles son:

iz uber - verifica si una expresión es mayor que otra.
iz liek - verifica si dos expresiones son iguales.

Estos pueden ser modificados por:
nop - negación (como ! en C) - debe colocarse delante de liek o uber.

uso:

x iz nope uber y
lol iz nope liek 7

Otras palabras clave en Omgrofl incluyen: rtfm, tldr, w00t, stfw, n00b, l33t, haxor, stfu (sale de la aplicación inmediatamente).

Hola Mundo en Omgrofl

4

Piet

Piet es un lenguaje cuyos programas son gráficos de mapa de bits que parecen arte abstracto. Fue diseñado por David Morgan-Mar, quien también creó Chef. Lleva el nombre del pionero del arte abstracto geométrico, Piet Mondrian; El nombre original, Mondrian, ya fue tomado.

Hay 20 colores para los cuales se especifica el comportamiento: 18 colores “coloridos”, que se ordenan mediante un ciclo de tono de 6 pasos y un ciclo de brillo de 3 pasos; Y en blanco y negro, que no están ordenados. Al salir de un color “colorido” e ingresar otro, el procedimiento realizado está determinado por la cantidad de pasos de cambio en el tono y el brillo. Negro no puede ser ingresado; cuando el puntero intenta ingresar a una región negra, se cambian las reglas para elegir el siguiente bloque. Si se intentan todas las reglas posibles, el programa termina. El blanco no realiza operaciones, pero permite que el puntero "pase".

En la imagen de arriba se muestra un programa Piet que genera "piet".

3

Befunge

Befunge se diferencia de los lenguajes convencionales en que los programas se organizan en una cuadrícula bidimensional, el campo de juego. Las instrucciones de “flecha” -, ^ y v - dirigen el flujo de control hacia la izquierda, derecha, arriba o abajo, y los bucles se construyen enviando el flujo de control en un ciclo.

Befunge fue inventado en 1993, por Chris Pressey, con el objetivo de ser lo más difícil de compilar posible. Esto se intentó con la implementación del código de auto-modificación (la instrucción 'p' puede escribir nuevas instrucciones en el campo de juego) y un campo de juego multidimensional (la misma instrucción se puede ejecutar en cuatro direcciones diferentes). Sin embargo, varios compiladores han sido escritos posteriormente.

Al igual que Brainfuck (ver artículo # 1), Befunge ha engendrado muchos descendientes y primos remotos. Se llaman extensiones y variantes de campanario. Fungeoids o solo Hongos.

La mayoría de los lenguajes de programación unidimensionales requieren alguna distinción sintáctica entre el texto del comentario y el código fuente. En Befunge, no hay sintaxis de comentarios: para incrustar la documentación en el código, el programador simplemente enruta el flujo de control alrededor del área de "comentarios", de modo que el texto en esa área nunca se ejecute.

Hola Mundo en Befunge

2

Malbolge

Mientras que Befunge está diseñado para ser difícil de compilar (traducir en código de máquina), Malbolge, creado por Ben Olmstead en 1998, y lleva el nombre del octavo círculo del Infierno en Dante Infierno, está destinado a ser lo más difícil posible en realidad para escribir programas. Era tan difícil de entender cuando llegó que tomó dos años para que apareciera el primer programa Malbolge, e incluso esto no fue escrito por un humano, sino por un Programa Lisp utilizando una búsqueda de haz del espacio de todos los programas posibles.

Existe cierta discusión acerca de si se pueden implementar bucles sensibles en Malbolge; pasaron muchos años antes de que se introdujera el primero sin fin. Un programa correcto de "99 Botellas de cerveza" (con la letra completa de la canción como su salida), que trata sobre bucles y condiciones no triviales, no se anunció durante ocho años; El primero correcto fue por Hisashi Iizawa, en 2007. Se muestra en la imagen de arriba.

Hola mundo en malbolge

1

Brainfuck

Brainfuck es el lenguaje de programación esotérico más famoso, y ha inspirado la creación de una gran cantidad de otros lenguajes. Destaca por su extremo minimalismo, está diseñado para desafiar y divertir a los programadores, y no es adecuado para el uso práctico. Para evitar ofensas, su nombre a veces se da como b **** fuck. El nombre del idioma generalmente no está en mayúscula, excepto al comienzo de una oración.

Urban Müller creó brainfuck en 1993, con la intención de diseñar un lenguaje que pudiera implementarse con el compilador más pequeño posible. Varios compiladores brainfuck se han hecho más pequeños que 200 bytes.

El lenguaje consta de solo ocho comandos:> <+ -. , []. Un programa brainfuck es una secuencia de estos comandos, posiblemente entremezclados con otros personajes (que se ignoran).

Como su nombre lo indica, los programas de brainfuck suelen ser difíciles de comprender. Esto se debe a que cualquier tarea ligeramente compleja requiere una larga secuencia de comandos, lo cual es una de las razones por las que no se utiliza para la programación seria. No obstante, como cualquier lenguaje Turing-complete, brainfuck es teóricamente capaz de computar cualquier función computable, si se le da acceso a una cantidad ilimitada de memoria.

Hola mundo en brainfuck

Esta lista fue compilada con la ayuda de Esolang Wiki y Wikipedia.