Lenguaje de programación esotérico

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 3 de octubre de 2021; las comprobaciones requieren 3 ediciones .

Un lenguaje de programación esotérico  es un lenguaje de programación diseñado para explorar los límites del desarrollo del lenguaje de programación, para probar la implementación potencial de alguna idea (la llamada " prueba de concepto ", prueba de concepto en inglés  ), como una obra de arte de software o como una broma (humor informático).

Muchos lenguajes esotéricos se inventan por diversión, a menudo parodian lo "real" o son encarnaciones absurdas de conceptos de programación "serios". Algunos lenguajes esotéricos están deliberadamente limitados (como el lenguaje HQ9+ ), otros son Turing-complete , es decir, lenguajes de propósito general. Una propiedad común inherente a cualquier lenguaje esotérico es que el texto del programa en él es comprensible solo para el "iniciado" o es incomprensible en absoluto, porque para componer un programa, debe escribir un programa en un lenguaje de programación regular. . Mientras que los desarrolladores de lenguajes de programación "reales" intentan que la sintaxis sea lo más clara posible y la programación sea conveniente, los creadores de lenguajes esotéricos se fijan otros objetivos.

En la práctica, dichos lenguajes suelen ser inútiles, pero programar en algunos de ellos es una buena práctica. Los lenguajes esotéricos suelen incluirse en la lista de lenguajes permitidos en concursos de programación.

Clases de algunos lenguajes esotéricos

Entre los lenguajes tipo INTERCAL , cuya idea principal es deliberadamente la diferencia máxima con los lenguajes existentes, se conoce el lenguaje FALSO .

Una gran clase son los lenguajes similares a Brainfuck centrados en reducir la sintaxis (el Brainfuck original tiene 8 comandos) manteniendo la integridad de Turing ), como CaneCode , Ook! (lenguaje orangután), COW (lenguaje artiodáctilo), Brainfork (Brainfuck multitarea), f*ckf*ck , DoubleFuck , Whitespace , Spoon , LOLCODE , HQ9+ (no Turing completo).

Los lenguajes que usan representaciones multidimensionales de programas se destacan en una clase separada: Byter bidimensional , Befunge , Befunge-93 (bidimensional, no Turing-completo ), Unefunge unidimensional , Trefunge tridimensional , tetradimensional 4DL y utilizando la codificación de colores Piet .

Otra clase está formada por lenguajes basados ​​en la copia de su propio código: Smetana , Smith , Muriel .

Los lenguajes de caja negra como Malbolge y Alpaca están diseñados para dificultar la escritura de código.

Varios idiomas implementan sintaxis "literaria", como Chef (recetas), Shakespeare ( obras de Shakespeare ), Haifu (poemas de haiku ), ArnoldC ( frases de Arnold Schwarzenegger ), FiM++ (cartas a la princesa Celestia ).

El idioma Var'aq , basado en la lógica de la raza Klingon de la serie Star Trek , se clasifica como una clase de idiomas con "lógica no humana".

Algunos otros lenguajes creados con fines esotéricos son Cool , GOTO++ , Lithp , paranoid , Sartre , Simple , Whenever , smilescript , emoticon , iot , Lazy K , Beatnik , reMorse , YoptaScript [1] .

A veces, los lenguajes esotéricos también incluyen lenguajes diseñados para probar conceptos matemáticos, como Thue y Unlambda .

Entre los lenguajes creados para otros fines, a veces denominados esotéricos, se encuentran P′′ , QuakeC , MC++ , Autocode "Engineer" (código mnemotécnico de bajo nivel para la computadora " Minsk ").

Notas

  1. YoptaScript: un lenguaje de programación para gopniks y clear boys . yopta.espacio . Recuperado: 6 de marzo de 2022.

Enlaces