skip to main | skip to sidebar

Vampii NO bloguea, Divaga

I am root - Jargon Force - A veces es mejor encender un lanzallamas que maldecir la obscuridad...

24 marzo 2012

Historia de la Tecnología: INTERCAL y los lenguajes de programación esotéricos

De Fortran a Python, de Smalltalk a Ruby, de Lisp a Clojure, los lenguajes de programación sirven para crear soluciones computaciones que modelan la realidad a su manera. Lenguajes cuyo ciclo de vida, con suerte, alcanza a extenderse por generaciones.
En la historia encontramos lenguajes hoy olvidados como el influyente ALGOL 60 o el es-sorprendente-que-siga-vivo lenguaje Cobol. Y en los extremos, allí donde pocos tienen el atrevimiento de viajar, experimentar o jugar, encontramos los llamados lenguajes de programación esotéricos.

Lenguajes de programación

Los límites de mi lenguaje son los límites de mi mundo. Todo lo que sé es para lo que tengo palabras.
— Ludwig Wittgenstein
Esa frase nos dice que el conocimiento que tenemos de la realidad está en función de la calidad de nuestro lenguaje. Tiene sentido porque modelamos en mundo con palabras y otros signos relacionados con el lenguaje. Para informáticos-desarrolladores yo diría que “los límites de mi lenguaje de programación son los límites de mi máquina”. Donde un lenguaje de programación es un conjunto finito de símbolos que escritos adecuadamente (es decir, conforme una sintaxis) pueden ser interpretados por una máquina. En otras palabras, un programa de cómputo es una combinación válida de esos símbolos.
Bueno, de hecho, tal máquina no existe realmente. Los lenguajes de programación funcionan siempre sobre abstracciones de la máquina física. Por ejemplo, Java, cuyos programas corren sobre una máquina virtual, a su vez sobre otra escondida por una serie de capas al estilo de la artesanía Matrioska hasta convertirse en instrucciones puras del procesador en turno.
En el futuro tal vez los lenguajes de programación serán tan parecidos a los “lenguajes humanos” que no podremos distinguir unos de otros. Entonces la programación será un acto de comunicación orgánico entre hombres y máquinas. A la fecha, creo que Wolfram Alpha es un adelanto de ello.

Lenguajes esotéricos

¿Qué hace que un lenguaje de programación sea esotérico? Su propósito (o la falta de él). Puesto que son el resultado de pruebas de concepto, experimentación, retos personales o simplemente bromas muy nerd. No suelen crearse para resolver grandes problemas tecnológicos, más bien para mostrar una sintaxis muchas veces ininteligible, pero muy apropiada para sorprender o divertir.
Parte del reto de diseñar un lenguaje de programación esotérico es que sea un lenguaje de programación en toda regla. En términos de ciencias de la computación, esto quiere decir que sea Turing completo.
Hace unos días hablamos de uno de ellos, de Trollscript, el lenguaje de programación troll, que no es sino una modificación del clásico Brainfuck, que veremos más adelante, antes hablaremos del primero de la historia.

INTERCAL

Estamos ante el padre de los lenguajes de programación esotéricos. Todo en él es una parodia bien pensada por sus creadores, un par de estudiantes irreverentes de la Universidad de Princeton en 1972. Uno de ellos, Don Woods cuenta que fue después de los exámenes finales y a altas horas de la noche cuando él y James Lyon iniciaron su curiosa conspiración contra los lenguajes establecidos.
INTERCAL fue diseñado para echar risas a costa de los lenguajes populares de inicios de los 70, entre ellos Cobol, Fortran, Basic, APL, Lisp, etc. Imitó sintaxis de varios de ellos y, sobre todo, agregó elementos nunca vistos por programadores en su sano juicio: no tenía ciclos, ni siquiera operadores básicos como la suma. El lenguaje de Woods y Lyon es un verdadero rompecabezas. El manual oficial de INTERCAL dice al principio:
Todo parecido con otros lenguajes de programación, vivos o muertos, es pura coincidencia… El nombre completo del compilador es “Compilador de Lenguaje sin un Acrónimo Pronunciable”… Es increíblemente fácil de aprender, adecuado para jóvenes programadores… y un reto para los profesionales… Es bien sabido que una persona cuyo trabajo en incomprensible se tiene en alta estima.
Un “Hello, world!” en INTERCAL se ve así:

DO ,1 < - #13
PLEASE DO ,1 SUB #1 < - #238
DO ,1 SUB #2 < - #108
DO ,1 SUB #3 < - #112
DO ,1 SUB #4 < - #0
DO ,1 SUB #5 < - #64
DO ,1 SUB #6 < - #194
DO ,1 SUB #7 < - #48
PLEASE DO ,1 SUB #8 < - #22
DO ,1 SUB #9 < - #248
DO ,1 SUB #10 < - #168
DO ,1 SUB #11 < - #24
DO ,1 SUB #12 < - #16
DO ,1 SUB #13 < - #162
PLEASE READ OUT ,1
PLEASE GIVE UP

Y en la página oficial de INTERCAL podemos leer esta linda advertencia:
Abandona toda cordura, tú que entraste aquí.
OK. Has programdo en C. Hackeado en Lisp. Fortran y Basic no te causan terror… Dominas una docena de lenguajes que los übergeeks nunca han escuchado… Quizá estés listo para el reto máximo: INTERCAL.
Todavía es posible usar INTERCAL. Por ejemplo, para instalarlo en distribuciones Linux como Ubuntu basta ejecutar:

sudo apt-get install intercal

Por supuesto, INTERCAL no es el único de su tipo. Hay decenas de lenguajes así. Cerremos este artículo con otros esotéricos y su particular forma de imprimir “Hello world!” en pantalla.

LOLCODE

Si los Lolcatz programaran usarían este lenguaje para saludar al mundo:
HAI
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE

Brainfuck

Minimalista, pero así se programa un “Hello world!”.
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+
++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
Urban Müller lo creó en 1993 para implementar el compilador más pequeño posible.

ZOMBIE

Diseñado para ejecutarse sobre un motor interfaz de un ser máquinal orientado a zombies (?). Los elementos del lenguaje están compuestos de undeads, demons y djinns.
HelloWorld is a zombie
summon
task SayHello
say "Hello World!"
animate
animate

Shakespeare

Objetivo de diseño: hacer un lenguaje de programación con un código fuente tan hermoso que recuerde las obras de Shakespeare. ¿Cómo saluda este lenguaje? Con demasiadas líneas de código en comparación con los demás; estás son las diez primeras y son para la definición de variables:
The Infamous Hello World Program.
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.

Piet

Lenguaje de programación basado en pixeles, a medio camino entre el arte abstracto y la programación. Creado por Dangermouse, doctor en ciencias, dibujante y hacker. Disfruten su “Hello, world!” (gracias a Carlos por recomendarlo en los comentarios):
Tomado de: http://alt1040.com/2011/09/historia-de-la-tecnologia-intercal-y-los-lenguajes-de-programacion-esotericos
Chamuyado por Vampii el 00:04
Enviar por correo electrónicoEscribe un blogCompartir en XCompartir con FacebookCompartir en Pinterest
Etiquetas: 42, abuso, ciencia, consola, curiosidades, humor, informatico, sociedad

No hay comentarios:

Publicar un comentario

Entrada más reciente Entrada antigua Inicio
Ver versión para móviles
Suscribirse a: Enviar comentarios (Atom)
Invitame unas Criptos
0x772EDF224Ed36a60E95CAe24Fc36D775943a2231
Invitame un café en cafecito.app

Blogs y Webs Amigas

  • Adrian Alì
  • Blog de APX r4nt5
  • Blog de BetoX
  • Blog de Buanzo
  • Blog de Chino Soliard
  • Blog de Juani
  • Blog de Kovacs
  • Blog de Mensrea Actusreus
  • Blog de OSiUX
  • Blog de Tito
  • Blog del Tano
  • BuenosAiresLibre
  • Criado Indomable
  • CRYPTEX - Seguridad de la Informacion
  • El negro Ivan
  • EpelByte
  • Hernan Racciati
  • Idoneidad Argentina
  • KilmesNet
  • KungFooSion - Computer Forensics
  • Licencia para hackear
  • Neolo
  • Proyecto Pinguino
  • Xyborg
  • Juegos
  • Juegos de motos
  • Juegos pc
  • Peliculas gratis subtituladas

Archivo del blog

  • ►  2025 (349)
    • ►  diciembre (15)
    • ►  noviembre (30)
    • ►  octubre (31)
    • ►  septiembre (30)
    • ►  agosto (31)
    • ►  julio (31)
    • ►  junio (30)
    • ►  mayo (31)
    • ►  abril (30)
    • ►  marzo (31)
    • ►  febrero (28)
    • ►  enero (31)
  • ►  2024 (365)
    • ►  diciembre (31)
    • ►  noviembre (30)
    • ►  octubre (31)
    • ►  septiembre (30)
    • ►  agosto (30)
    • ►  julio (31)
    • ►  junio (30)
    • ►  mayo (30)
    • ►  abril (30)
    • ►  marzo (31)
    • ►  febrero (29)
    • ►  enero (32)
  • ►  2023 (354)
    • ►  diciembre (31)
    • ►  noviembre (31)
    • ►  octubre (31)
    • ►  septiembre (29)
    • ►  agosto (30)
    • ►  julio (29)
    • ►  junio (28)
    • ►  mayo (30)
    • ►  abril (29)
    • ►  marzo (29)
    • ►  febrero (26)
    • ►  enero (31)
  • ►  2022 (358)
    • ►  diciembre (31)
    • ►  noviembre (30)
    • ►  octubre (31)
    • ►  septiembre (29)
    • ►  agosto (31)
    • ►  julio (30)
    • ►  junio (30)
    • ►  mayo (31)
    • ►  abril (28)
    • ►  marzo (31)
    • ►  febrero (28)
    • ►  enero (28)
  • ►  2021 (269)
    • ►  diciembre (30)
    • ►  noviembre (18)
    • ►  octubre (19)
    • ►  septiembre (20)
    • ►  agosto (27)
    • ►  julio (31)
    • ►  junio (30)
    • ►  mayo (29)
    • ►  abril (10)
    • ►  marzo (17)
    • ►  febrero (18)
    • ►  enero (20)
  • ►  2020 (363)
    • ►  diciembre (30)
    • ►  noviembre (31)
    • ►  octubre (32)
    • ►  septiembre (30)
    • ►  agosto (31)
    • ►  julio (31)
    • ►  junio (30)
    • ►  mayo (31)
    • ►  abril (31)
    • ►  marzo (30)
    • ►  febrero (27)
    • ►  enero (29)
  • ►  2019 (294)
    • ►  diciembre (31)
    • ►  noviembre (29)
    • ►  octubre (26)
    • ►  septiembre (30)
    • ►  agosto (31)
    • ►  julio (29)
    • ►  junio (26)
    • ►  mayo (21)
    • ►  abril (20)
    • ►  marzo (18)
    • ►  febrero (12)
    • ►  enero (21)
  • ►  2018 (283)
    • ►  diciembre (31)
    • ►  noviembre (23)
    • ►  octubre (19)
    • ►  septiembre (20)
    • ►  agosto (30)
    • ►  julio (32)
    • ►  junio (23)
    • ►  mayo (27)
    • ►  abril (14)
    • ►  marzo (20)
    • ►  febrero (15)
    • ►  enero (29)
  • ►  2017 (278)
    • ►  diciembre (20)
    • ►  noviembre (17)
    • ►  octubre (17)
    • ►  septiembre (21)
    • ►  agosto (31)
    • ►  julio (25)
    • ►  junio (23)
    • ►  mayo (18)
    • ►  abril (27)
    • ►  marzo (30)
    • ►  febrero (27)
    • ►  enero (22)
  • ►  2016 (337)
    • ►  diciembre (28)
    • ►  noviembre (30)
    • ►  octubre (26)
    • ►  septiembre (22)
    • ►  agosto (31)
    • ►  julio (29)
    • ►  junio (30)
    • ►  mayo (31)
    • ►  abril (26)
    • ►  marzo (25)
    • ►  febrero (28)
    • ►  enero (31)
  • ►  2015 (352)
    • ►  diciembre (31)
    • ►  noviembre (30)
    • ►  octubre (31)
    • ►  septiembre (29)
    • ►  agosto (31)
    • ►  julio (32)
    • ►  junio (31)
    • ►  mayo (25)
    • ►  abril (29)
    • ►  marzo (32)
    • ►  febrero (21)
    • ►  enero (30)
  • ►  2014 (344)
    • ►  diciembre (25)
    • ►  noviembre (24)
    • ►  octubre (27)
    • ►  septiembre (30)
    • ►  agosto (31)
    • ►  julio (31)
    • ►  junio (30)
    • ►  mayo (31)
    • ►  abril (31)
    • ►  marzo (30)
    • ►  febrero (27)
    • ►  enero (27)
  • ►  2013 (366)
    • ►  diciembre (31)
    • ►  noviembre (30)
    • ►  octubre (30)
    • ►  septiembre (30)
    • ►  agosto (32)
    • ►  julio (32)
    • ►  junio (28)
    • ►  mayo (30)
    • ►  abril (31)
    • ►  marzo (32)
    • ►  febrero (28)
    • ►  enero (32)
  • ▼  2012 (420)
    • ►  diciembre (31)
    • ►  noviembre (31)
    • ►  octubre (33)
    • ►  septiembre (32)
    • ►  agosto (32)
    • ►  julio (36)
    • ►  junio (35)
    • ►  mayo (34)
    • ►  abril (36)
    • ▼  marzo (36)
      • Las fotografías comprometidas que borraste de Face...
      • Todo sobre la portabilidad numérica en Argentina
      • Microsoft bloqueó todos los links de The Pirate Ba...
      • Bikini pixelado
      • LibrePlan, como un OpenProject pero en un server web
      • LimeSurvey, encuestas web de manera simple
      • Definiendo la partición de Swap en GNU/Linux
      • Viajando en tren...
      • Conectandose a WiFi desde la consola
      • Gobierno rumano prohíbe la adquisición de software...
      • Historia de la Tecnología: INTERCAL y los lenguaje...
      • El sexo es tan bueno para la salud como la vitamin...
      • Cargadores solares de pilas: otra buena idea
      • ¿Qué porcentaje del cerebro humano se usa?
      • Facebook solicita documentos de identidad para dev...
      • ¿A las mujeres les gusta ver películas pornográficas?
      • Timeout de las sessiones ssh
      • Como capturar una pantalla remota
      • Generar CSS automáticamente con tan solo subir una...
      • Guía sobre seguridad y privacidad de la tecnología...
      • Estudio brasileño afirma que la zoofilia produce c...
      • Copiar imagenes ISO hibridas a pendrive de arranque
      • Después de todo, todos somos iguales...
      • El comando dd y sus mil y un usos
      • Un plastico que es la leche
      • Script para identificar hashes de contraseñas
      • Alta Disponibilidad en Linux: Heartbeat y Pacemaker
      • Etiquetar una foto en Facebook puede afectar derec...
      • Una teoría más
      • Un tercio de las estrellas como el sol tendrían un...
      • Los operadores móviles del Reino Unido bloquean el...
      • La complicada vida sexual de Barbie
      • Las redes sociales reducen a 4 la teoría de los "6...
      • La información quiere ser libre: necesitamos crear...
      • La sabiduría de los monjes
      • Jabón con Aceite Usado (Alta Calidad)
    • ►  febrero (43)
    • ►  enero (41)
  • ►  2011 (272)
    • ►  diciembre (34)
    • ►  noviembre (47)
    • ►  octubre (43)
    • ►  septiembre (32)
    • ►  agosto (29)
    • ►  julio (26)
    • ►  junio (18)
    • ►  mayo (8)
    • ►  abril (11)
    • ►  marzo (12)
    • ►  febrero (7)
    • ►  enero (5)
  • ►  2010 (38)
    • ►  diciembre (3)
    • ►  noviembre (10)
    • ►  octubre (1)
    • ►  septiembre (4)
    • ►  agosto (5)
    • ►  julio (3)
    • ►  junio (1)
    • ►  abril (1)
    • ►  marzo (3)
    • ►  febrero (5)
    • ►  enero (2)
  • ►  2009 (9)
    • ►  octubre (2)
    • ►  septiembre (2)
    • ►  mayo (3)
    • ►  febrero (1)
    • ►  enero (1)
  • ►  2008 (12)
    • ►  diciembre (2)
    • ►  noviembre (1)
    • ►  octubre (4)
    • ►  septiembre (1)
    • ►  abril (2)
    • ►  marzo (1)
    • ►  febrero (1)
  • ►  2007 (6)
    • ►  diciembre (1)
    • ►  noviembre (2)
    • ►  octubre (3)

Datos Irrelevantes

Mi foto
Vampii
I am root - Jargon Force - A veces es mejor encender un lanzallamas que maldecir la oscuridad...
Ver todo mi perfil

Tags

curiosidades (2404) sociedad (2248) argentina (1951) informatico (1742) viajes (1413) ciencia (1298) tics (987) seguridad (980) linux (788) redeslibres (745) humor (726) abuso (717) 42 (625) consola (586) bsd (539) electronica (433) Cristina cara lavada (409) slackware (340) Hamping (334) celulares (298) crimen (297) ladrones (294) Centrux (281) eventos (275) delito (268) ley (268) robo (256) linux quilmeslug (235) receta (213) ciencia ficcion (162) cine (160) quilmeslug (147) mecanica (143) libros (139) android (115) Hp Jornada (113) solaris (98) CNC (97) pseudociencia (87) facebook (74) huerta (69) Movistar (60) Personal (56) teoria (51) arduino (45) Claro (43) ekoparty (38) security jam (27) OpenWRT (23) conurbania (15)

Cofrades

 

Suscribirse a

Entradas
Atom
Entradas
Comentarios
Atom
Comentarios