SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática
2013 Vol. 1 Nro. 1 1
Programación Esotérica
Jesus Alberto Bautista Bellido
jesus61_1@hotmail.com
Juan Tipismana Lara
juan_16_2106@hotmail.com
Edson Elías Huamaní Aldoradín
edsel94@gmail.com
PROGRAMACION ESOTÉRICA: Una breve reseña
Estos lenguajes de programación esotéricos datan de la
década de los 70 en donde primero aparece el Intercal, a
partir de allí es que los programadores deciden dejar de
lado los lenguajes que ellos consideran aburridos como
Cobol, Basic, Fortran y deciden crear sus propios
lenguajes de programación donde prima la diversión
sobre la utilidad, además de suponer un desafío tanto
para quienes lo crean como para los que tratan de
entender esos lenguajes ya que poseen una sintaxis
detallada y su alfabeto es muy restringido lo que los hace
muy peculiares.
Estos lenguajes se encuentran en lo más recóndito de los
lenguajes de programación, es decir no se les toma
mucha importancia debido a que no son mucha utilidad
en la sociedad, mas pasan al olvido en la historia y
quedan como creaciones olvidadas de personas que
inventaron algo con que entretenerse en su momento, sin
embargo también existen otros que son tan absurdo que
no tiene caso entenderlos [1].
I. INTRODUCCIÓN
Programación esotérica es un lenguaje de programación
creado por usuarios con finalidad de satirizar a otros
lenguajes que existían en ese entonces como el Cobol,
Fortran, entre otros, o por el simple hecho de pasar el
rato poniendo a prueba su lenguaje con los límites de
sintaxis que puedan entender las personas haciendo que
estos lenguajes sean tan insólitos que se sorprenderán de
la utilidad que tienen. Estos lenguajes fueron creados
para entretener a las personas que quieren entender estos
lenguajes, ya que a veces no posee una lógica simple y
para entender los lenguajes complicados requiere mucho
tiempo hasta años (Malbolge), muchas personas se
desaniman en el trayecto e incluso en sus propias
páginas oficiales existen requerimientos mínimos que
deben saber cómo aprender otros lenguajes básicos como
los mencionados anteriormente pero siempre se
encontrará en esas páginas mensajes no muy alentadores
sino todo lo contrario desmotivan a las personas a que no
quieran intentarlo [2].
La mayoría de esos lenguajes no se pueden utilizar en el
ámbito empresarial, en el trabajo, o para resolver
operaciones comunes como suma, resta, multiplicación o
división ya que depende del lenguaje en cuestión si
acepta los caracteres comunes que permitan realizarla, es
más la utilidad que se les puede dar es creada por cada
usuario.
II. CONCEPTOS BÁSICOS
La programación esotérica se basa en algunos términos
que son importantes saberlos:
Turing Completo: Se dice que un lenguaje es “Turing
completo” cuando sobre este lenguaje se puede crear
cualquier tipo de algoritmo que se presente, pero no
necesariamente lo más óptimo [3].
Esolang: Son lenguajes de programación esotéricos
diseñado con frecuencia no con un objetivo practica sino
más bien como una broma o para explorar los límites de
creatividad.
Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática
2013 Vol. 1 Nro. 1 2
III. USOS EN LA REALIDAD
El uso de lenguajes esotéricos que se da en la actualidad
no es muy variado, ya que han sido diseñados
mayormente para fines de entretenimiento y no para
utilidad que se le pueda dar. Tiene como objetivo
divertir a la hora de programar y no tienen intención de
ser usados en la realidad [1]. Es decir, existen personas
que crean su propio lenguaje de programación para así
darlo a conocer al público y entretener a los
programadores que desean usar este lenguaje. Puede que
en la actualidad un lenguaje sea esotérico, y con el
tiempo pueda ser un lenguaje aceptado y normal para
uso comercial [3] [4].
IV. VENTAJAS Y DESVENTAJAS
Ventajas:
Generalmente poseen una sintaxis muy básica.
Por ejemplo, el BrainFuck cuenta con solo 8
instrucciones de tipo caracter: „>‟ , ‟<‟ ,
„+‟ , ‟–„ , „.‟ , „,‟ , „[„ , „]‟.
La mayoría de ellos son lenguajes Turing-
completos, es decir, que se pueden crear todo
tipo de algoritmos con estos lenguajes [5].
Normalmente estos lenguajes se usan para
probar conceptos en la creación de lenguajes
turing completos, por lo que tienen aplicaciones
en la informática teórica [6].
Cualquier persona con conocimientos en
programación puede crear su propio lenguaje
esotérico.
Desventajas:
Algunos de ellos, como son el INTERCAL que
fue creado en el año 1972, son difíciles de
entender y casi imposible de programar.
Son de difícil aprendizaje y aplicación.
No son muy comerciales, por lo que la oferta de
empleo para este tipo de lenguajes es reducida
[7].
No son útiles para proyectos de gran tamaño.
Prima más el entretenimiento que la utilidad y
productividad.
La mayoría de estos lenguajes no tienen
compiladores o intérpretes.
V. ALGUNOS EJEMPLOS
Estos lenguajes son resultado de pruebas de
experimentación, retos personales o simplemente bromas
para pasar el rato. No suelen crearse para resolver
grandes problemas tecnológicos, sino más bien para
mostrar una sintaxis ininteligible, sin embargo es muy
apropiada para divertir y entretener a las personas
curiosas.
Donde la mayoría de estos lenguajes datan de 1972 en
donde se creó el primer lenguaje esotérico que es
Intercal y de allí comenzaron a surgir diferentes tipos, en
diferentes interpretes con distintas sintaxis y todas tienen
un nivel alto de complejidad para entenderlo.
Veamos algunos ejemplos de lenguajes esotéricos:
A. INTERCAL
Este lenguaje es el padre de los lenguajes de
programación esotéricos. Creado por dos universitarios
de la ciudad de Princeton en 1972 Woods y Lyon.
Cuentan que su diseño se basó en Cobol, Fortran, Basic
ya uso su sintaxis, además de no tener ni ciclos, ni
operaciones básicas como la suma. Es un verdadero
rompecabezas. Una de las características resaltantes es
que en vez de usar la sentencia GOTO, tiene la
instrucción COME FROM #, que indica cuando se ha
ejecutado la sentencia # se salta a la siguiente sentencia
después de COME FROM # y también algunas acciones
Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática
2013 Vol. 1 Nro. 1 3
deben pedirse por favor, a las comillas se les llama
orejas de conejo [8].
En la actualidad es posible usar INTERCAL, por
ejemplo sirve para la instalación en distribuciones Linux
como Ubuntu basta con ejecutar esta sentencia [9]:
sudo apt-get install intercal
Figura 2: Código de “Hello World” en lenguaje Intercal
B. MALBOLGE
Este lenguaje esotérico es el más complejo de entender
hasta ahora, le suelen decir programación del infierno.
Fue desarrollado por Ben Olmstead en el año 1998,
tiene este nombre en referencia al 8vo círculo del
infierno de la obra de Dante, donde están los
fraudulentos; este lenguaje tiene como objetivo ser el de
más difícil entendimiento y casi siempre las personas
que quieren aprenderlo retroceden en el camino y no lo
logran, es más siempre se encontrará comentarios
desalentadores en las redes sociales para evitar [10].
Un ejemplo de código, acá esta un “Hello world”.
(=<`: 9876Z4321UT. –Q+*)M'&%$H”! ~} | Bzy? =|
{z]KwZY44Eq0/{mlk**
hKs_dG5 [m_BA{ ?-Y;; Vb‟rR54321M }/
.zHGwEDCBA@986543W10/.R,+O<
Figura 3: Código “Hello World” en lenguaje Malbolge
C. Ook!
Es una creación de David Morgan-Mar este lenguaje
esotérico turing completo y está diseñado para
orangutanes tiene 3 palabras reservadas Ook. , Ook? Y
Ook! Que pueden combinarse en 8 maneras diferentes
para formar el repertorio de instrucciones. Ook pretende
ser de fácil entendimiento para orangutanes.
Figura 4: Código de “Hello World” en lenguaje Ook!
WHITESPACE ( Los espacios en blanco )
La particularidad de este lenguaje es que solo utiliza el
espacio (enter), la tabulación (tab), y la línea en blanco,
los demás caracteres son ignorados, fue desarrollado por
Edwin Brady y Chris Morris consideraron injusto que en
todos los lenguajes de programación los espacios no
tengan ningún significado, la única manera de verlos es
coloreando la sintaxis para hacer visibles esos espacios
en blanco y distinguirlos.
¿Cuáles son las ventajas de usar espacios en blanco?
Hay cosas que son difíciles en otros idiomas se hacen
mucho más fáciles en los espacios en blanco.
Es de mucha utilidad para los espías, imaginando que
tenemos un programa de alto secreto que no quieres que
nadie vea, basta con imprimir y borrar el archivo, listo
para escribir en una fecha posterior. Nadie sabrá que ese
pedazo de papel en blanco en un código informático
vital.
El siguiente código imprime “Hello world!”, con líneas
en blanco, tabulador y espacio. Aunque no se vea a
simple vista.
Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática
2013 Vol. 1 Nro. 1 4
Figura 5: Código de “Hello World” en lenguaje Whitespace
Para un fácil entendimiento se tendría que teñir de
colores con un editor de texto y se vería de la siguiente
manera:
- Espacio (rosado) y tabulación (verde claro).
Figura 6: Código de “Hello World” en lenguaje Whitespace con
editor de texto.
D. Piet
Este lenguaje inventado por David Morgan-Mar, donde
los programa son mapa de bits, son combinación de
colores, como si fuera una pintura de arte abstracto, lleva
ese nombre en honor al pintor Piet Mondrian, su función
es dotar de cierto arte al código del programa.
Cada tonalidad y cambio de color representa una
operación distinta push, pop, add, substract, mod, roll,
out, etc. [11]. Piet utiliza 20 colores distintos formando
distinto gráficos que después un intérprete ejecutará
como en la siguiente imagen un Hello World.
Figura 7: Código de “Hello World” en lenguaje Piet.
E. Brainfuck
Este lenguaje de programación esotérico está
diseñado por Urban Müller en 1993 para ser el de
mayor simplicidad y a la vez turing completo, y solo
requiere de un compilador completo, lo baso en
turing completo y también le sirvió de inspiración al
compilador de 1024 bytes de tamaño de lenguaje
FALSE [12] [13].
Brainfuck opera sobre una matriz de celdas de
memoria, también conocida como cinta, cada una
inicialmente a cero. Hay un puntero apuntando
inicialmente a la celda de memoria tienen los
siguientes comandos:
Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática
2013 Vol. 1 Nro. 1 5
Comando Descripción Lenguaje C
> Mueve el
puntero
hacia la
derecha
++ptr;
< Mueve el
puntero
hacia la
izquierda
--ptr;
+ Incrementa
la celda de
memoria
++*ptr;
Comando Descripción Lenguaje C
. Salida del
personaje
por la célula
del puntero
Putchar(*ptr);
, Introduce
un carácter
y lo
almacena en
el puntero
*ptr=getchar();
[ Ir más allá
de la
coincidencia
] si la celda
bajo el
puntero es 0
While(*ptr){
] Ir de nuevo
al juego[ si
la celda bajo
del puntero
es 0
}
Figura 8: Cuadro de comandos de Brainfuck según lenguaje C.
++++++[>+++++++>++++++++++>+++++++++++
>+++>+<<<<-
]>++.>+.+++++++..+++.>++.<<++++++++++++++
+.>.+++.------.---------.>+.>.
Figura 8: Código de “Hello World” en lenguaje Brainfuck
En un intérprete para Brainfuck, podríamos
visualizarlo de la siguiente manera:
Figura 9: Interprete de Brainfuck.
VI. PROGRAMAS QUE INTERPRETAN ESTOS
LENGUAJES
Compiladores de algunos Lenguajes Esotéricos
Existen una gran variedad de lenguajes Esotéricos por lo
tanto no alcanzaría para explayarlos todos en un artículo
tan ameno. Pero mostraremos algunos de los
compiladores de aquellos lenguajes esotéricos
[14][15][16].
A. INTERCAL: El código se crea y se compila muy
bien bajo cualquier plataforma ANSI/POSIX,
incluyendo a Linux y sus versiones BSD libres.
Las versiones anteriores de este código se
ejecutan en DOS/Windows, aunque si todavía lo
hará es desconocida [17].
B. WHITESPACE: El código debería compilar en
cualquier máquina Unix con el Glasgow Haskell
Compiler versión 5.02 o posterior. También nos
informaron de que compila correctamente en OS
X 10.2.4 sin problemas.
Sin embargo, esta es una versión beta temprana,
así que los problemas todavía pueden existir.
C. BRIANFUCK: El primer intérprete y
compilador de este lenguaje fue para los
sistemas Amiga.
Brainfucked por otro lado es un potente y
eficiente compilador brainfuck para sistemas
Windows y MS-DOS.
El compilador dispone de un avanzado programa
de optimización de código y, por tanto creados
Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática
2013 Vol. 1 Nro. 1 6
con Brainfucked son bastante pequeñas.
Brainfucked, por supuesto, comprueba la
sintaxis de los programas brainfuck para detectar
errores comunes y posibles antes de compilar.
También es capaz de compilar para diferentes
plataformas como Windows, DOS, Linux, Unix
y Mac OS X. Cada programa compilado con
Brainfucked es ejecutable bajo Windows y MS-
DOS.
Visual brainfuck es un entorno de desarrollo
compatible con Windows 7 integrado para
desarrolladores de todo el mundo que prefieren
el enfoque brainfuck. Tiene las herramientas
necesarias para cumplir con altos estándares de
calidad actuales en lo que respecta al desarrollo
de aplicaciones profesionales... en brainfuck
[18].
VII. CONCLUSIONES
- Todos estos lenguajes fueron creados
espontáneamente por universitarios, entre otros,
con la única finalidad que es entretener a las
personas que quieran aprenderlo, pero para que
no sea simple los crearon con una sintaxis
compleja para que sea todo un reto.
- La plataforma apropiada para ejecutar estos
lenguajes esotéricos es Linux ya que nos ofrece
una flexibilidad para crear lenguajes y contar
con un entorno para poder probarlo.
- Podemos decir que los lenguajes esotéricos se
encuentran tan ocultos, en lo más recóndito ya
que no se le puede dar una buena utilidad en la
vida real, sin embargo existen algunos que si se
le da una acción malintencionada podría generar
riesgos de muy alto nivel en la sociedad (como
es el caso del lenguaje Whitespace usado por
espías).
- Existen unos cuantos lenguajes que con grandes
ideas pueden llegar a tener una utilidad enorme
como el caso del lenguaje Ook! Que interactúa
con orangutanes, de manera que podría llegar a
convertirse en parte la investigación del
entendimiento del lenguaje de los orangutanes.
- - La gran mayoría de los lenguajes se encuentran
en fase experimental por ende no existe un
compilador oficial, pero si se pueden probar por
plataformas como ANSI/POSIX en Linux, en
Windows o por MS-DOS.
REFERENCIAS
[1] Miguel Santirso, Lenguajes de programación
esotérica,
http://miguelsantirso.es/blog/2007/01/lenguajes-de-
programacion-esotericos/, Enero 2003.
[2] Anabella Roman, Edgardo Fernandez, Gianni
Sabbione, Lisando Pardo, Mario Sacco, Matias
Benitez, Max Ferzzola, Nico Veronas Whitespace :
lenguaje de programación,
http://www.neoteo.com/whitespace-lenguaje-de-
programacion-esoterico , 2010
[3] Alan Lazalde - Programación esotérica -
http://gr3p.com/2011/02/programacion-esoterica/ -
Febrero 2011.
[4] Fundación Wikimedia, Inc Lenguaje de programación
esotérico,
http://es.wikipedia.org/wiki/Lenguaje_de_programaci
%C3%B3n_esot%C3%A9rico, Marzo 2013
[5] Francisco I. Leyva - Programación esotérica -
http://www.panchosoft.com/blog/2006/12/05/progra
macion-esoterica/ - Diciembre 2006.
[6] Pedro Gimeno Fortea - Recreaciones computacionales
http://www.formauri.es/personal/pgimeno/compurec/
LenguajesEsotericos.php - Mayo 2005.
[7] Alvaro Graves - Lenguajes Esotéricos -
http://manzanamecanica.org/2008/05/lenguajes_esote
ricos.html - Mayo 2008.
Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática
2013 Vol. 1 Nro. 1 7
[8] Fundación Wikimedia, Inc - Intercal
http://es.wikipedia.org/wiki/INTERCAL - Marzo
2013
[9] Eric Raymond, Recursos de intercal-
http://catb.org/esr/intercal/ , Mayo 2013
[10] Lou Scheffer, Introducción a Malbolge
http://www.lscheffer.com/malbolge.shtml, diciembre
del 2007.
[11] Alvy , Piet: Un lenguaje de programación esotérico,
bellamente matemático,
http://www.microsiervos.com/archivo/ordenadores/pi
et-lenguaje-programacion.html, Marzo 2009
[12] Brian Raiter, Brainfuck-
www.muppetlabs.com/~breadbox/bf/
[13] Brainfuck, http://esolangs.org/wiki/brainfuck, Mayo
2013.
[14] Hackerdou,
http://hackerdou.com/blog/2012/10/10/lenguajes-de-
programacion-esotericos/
[15] Programación en Castellano,
http://www.programacion.com/articulo/lenguajes_eso
tericos_207 - Enero 2003
[16] Esolangs
http://esolangs.org/wiki/Language_list
[17] The Intercal Resources Page,
http://www.catb.org/~esr/intercal/, May 2013.
[18] Visual Brianfuck
https://sites.google.com/site/visualbf/, 2013

Weitere ähnliche Inhalte

Was ist angesagt?

Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.dUi velazquez
 
Tema 01 introducción a compiladores
Tema 01   introducción a compiladoresTema 01   introducción a compiladores
Tema 01 introducción a compiladoresikky2345
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónPanicJao
 
Trabajo
TrabajoTrabajo
Trabajopa_tty
 
Lenguaje
LenguajeLenguaje
LenguajeAlixg19
 
Clasificasion de lenguajes
Clasificasion de lenguajesClasificasion de lenguajes
Clasificasion de lenguajesdomynicjorge
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionfranklin
 
Historia de los lenguajes de programación escrito
Historia de los lenguajes de programación escritoHistoria de los lenguajes de programación escrito
Historia de los lenguajes de programación escritoramosmendezshura
 
Historia de los lenguajes de programacion
Historia de los lenguajes de programacionHistoria de los lenguajes de programacion
Historia de los lenguajes de programacionJANIIER
 
U1T1 - Presentación del curso de Metodología de la Programación IV
U1T1 - Presentación del curso de Metodología de la Programación IVU1T1 - Presentación del curso de Metodología de la Programación IV
U1T1 - Presentación del curso de Metodología de la Programación IVLuis Eduardo Pelaez Valencia
 
Clasificasion de lenguajes
Clasificasion de lenguajesClasificasion de lenguajes
Clasificasion de lenguajesAlex Javier
 

Was ist angesagt? (19)

Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.
 
Programacion evolucion
Programacion evolucionProgramacion evolucion
Programacion evolucion
 
Informatica lupita
Informatica lupitaInformatica lupita
Informatica lupita
 
Profesión: Programación
Profesión: ProgramaciónProfesión: Programación
Profesión: Programación
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Tema 01 introducción a compiladores
Tema 01   introducción a compiladoresTema 01   introducción a compiladores
Tema 01 introducción a compiladores
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
G lenguajes de-programacion
G lenguajes de-programacionG lenguajes de-programacion
G lenguajes de-programacion
 
Compiladores iswi (parte 1)
Compiladores iswi (parte 1)Compiladores iswi (parte 1)
Compiladores iswi (parte 1)
 
Trabajo
TrabajoTrabajo
Trabajo
 
Lenguaje
LenguajeLenguaje
Lenguaje
 
Victor hugo
Victor hugoVictor hugo
Victor hugo
 
Clasificasion de lenguajes
Clasificasion de lenguajesClasificasion de lenguajes
Clasificasion de lenguajes
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Historia de los lenguajes de programación escrito
Historia de los lenguajes de programación escritoHistoria de los lenguajes de programación escrito
Historia de los lenguajes de programación escrito
 
Historia de los lenguajes de programacion
Historia de los lenguajes de programacionHistoria de los lenguajes de programacion
Historia de los lenguajes de programacion
 
Libro 1
Libro 1 Libro 1
Libro 1
 
U1T1 - Presentación del curso de Metodología de la Programación IV
U1T1 - Presentación del curso de Metodología de la Programación IVU1T1 - Presentación del curso de Metodología de la Programación IV
U1T1 - Presentación del curso de Metodología de la Programación IV
 
Clasificasion de lenguajes
Clasificasion de lenguajesClasificasion de lenguajes
Clasificasion de lenguajes
 

Andere mochten auch

Memoria celular
Memoria celular Memoria celular
Memoria celular Oriol Comas
 
¿Cómo aprenden las personas?
¿Cómo aprenden las personas?¿Cómo aprenden las personas?
¿Cómo aprenden las personas?Mayela
 
Gimnasia psicofísica
Gimnasia psicofísicaGimnasia psicofísica
Gimnasia psicofísicae_d_w_i_n
 
Estructura y replicacion de dna
Estructura y replicacion de dnaEstructura y replicacion de dna
Estructura y replicacion de dnakamashtemus
 
Glándulas salivales. Embriología, anatomía y fisiología de glándulas salivale...
Glándulas salivales. Embriología, anatomía y fisiología de glándulas salivale...Glándulas salivales. Embriología, anatomía y fisiología de glándulas salivale...
Glándulas salivales. Embriología, anatomía y fisiología de glándulas salivale...SamFar DS
 
Louise hay sana tu cuerpo
Louise hay sana tu cuerpoLouise hay sana tu cuerpo
Louise hay sana tu cuerpoAnakiell
 
INTELIGENCIA EMOCIONAL - Daniel Goleman
INTELIGENCIA EMOCIONAL -  Daniel GolemanINTELIGENCIA EMOCIONAL -  Daniel Goleman
INTELIGENCIA EMOCIONAL - Daniel GolemanRosa Elemil Martinez
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 

Andere mochten auch (12)

memoria
memoriamemoria
memoria
 
Memoria celular
Memoria celularMemoria celular
Memoria celular
 
Memoria celular
Memoria celular Memoria celular
Memoria celular
 
¿Cómo aprenden las personas?
¿Cómo aprenden las personas?¿Cómo aprenden las personas?
¿Cómo aprenden las personas?
 
Gimnasia psicofísica
Gimnasia psicofísicaGimnasia psicofísica
Gimnasia psicofísica
 
Estructura y replicacion de dna
Estructura y replicacion de dnaEstructura y replicacion de dna
Estructura y replicacion de dna
 
Glándulas salivales. Embriología, anatomía y fisiología de glándulas salivale...
Glándulas salivales. Embriología, anatomía y fisiología de glándulas salivale...Glándulas salivales. Embriología, anatomía y fisiología de glándulas salivale...
Glándulas salivales. Embriología, anatomía y fisiología de glándulas salivale...
 
29 02 gimnacia y posturas de yoga gfu www.gftaognosticaespiritual.org
29 02 gimnacia y posturas de yoga gfu www.gftaognosticaespiritual.org29 02 gimnacia y posturas de yoga gfu www.gftaognosticaespiritual.org
29 02 gimnacia y posturas de yoga gfu www.gftaognosticaespiritual.org
 
Louise hay sana tu cuerpo
Louise hay sana tu cuerpoLouise hay sana tu cuerpo
Louise hay sana tu cuerpo
 
Inteligencia Emocional
Inteligencia EmocionalInteligencia Emocional
Inteligencia Emocional
 
INTELIGENCIA EMOCIONAL - Daniel Goleman
INTELIGENCIA EMOCIONAL -  Daniel GolemanINTELIGENCIA EMOCIONAL -  Daniel Goleman
INTELIGENCIA EMOCIONAL - Daniel Goleman
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Ähnlich wie Lenguajes Esotéricos

Lenguaje técnico de informática
Lenguaje técnico de informáticaLenguaje técnico de informática
Lenguaje técnico de informática993431901jaz
 
01. lenguajes de programación autor virtuniversidad
01. lenguajes de programación autor virtuniversidad01. lenguajes de programación autor virtuniversidad
01. lenguajes de programación autor virtuniversidadLuisBeltrnAlvinoAlva
 
01. Lenguajes de programación autor Virtuniversidad.pdf
01. Lenguajes de programación autor Virtuniversidad.pdf01. Lenguajes de programación autor Virtuniversidad.pdf
01. Lenguajes de programación autor Virtuniversidad.pdfrosalesjonathan2024
 
Programación web introducción
Programación web introducciónProgramación web introducción
Programación web introduccióntrinch_1
 
Lenguajes de Programación
Lenguajes de Programación Lenguajes de Programación
Lenguajes de Programación lobi7o
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacionmarcoxchipana
 
lenguajes de programacion
lenguajes de programacionlenguajes de programacion
lenguajes de programacionjuansee99
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.MaryAleCTorrice
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.MaryAleCTorrice
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónJeennFdz
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónJeennFdz
 
Clasificación de los lenguajes de programación
Clasificación de los lenguajes de programaciónClasificación de los lenguajes de programación
Clasificación de los lenguajes de programaciónRonay Garcia
 

Ähnlich wie Lenguajes Esotéricos (20)

Lenguaje técnico de informática
Lenguaje técnico de informáticaLenguaje técnico de informática
Lenguaje técnico de informática
 
01. lenguajes de programación autor virtuniversidad
01. lenguajes de programación autor virtuniversidad01. lenguajes de programación autor virtuniversidad
01. lenguajes de programación autor virtuniversidad
 
01. Lenguajes de programación autor Virtuniversidad.pdf
01. Lenguajes de programación autor Virtuniversidad.pdf01. Lenguajes de programación autor Virtuniversidad.pdf
01. Lenguajes de programación autor Virtuniversidad.pdf
 
Programación web introducción
Programación web introducciónProgramación web introducción
Programación web introducción
 
Introducción a la Gerencia Informática
Introducción a la Gerencia InformáticaIntroducción a la Gerencia Informática
Introducción a la Gerencia Informática
 
Lenguajes de Programación
Lenguajes de Programación Lenguajes de Programación
Lenguajes de Programación
 
Introduccion 2010(3)
Introduccion 2010(3)Introduccion 2010(3)
Introduccion 2010(3)
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Clasificacion
ClasificacionClasificacion
Clasificacion
 
Programación web introducción
Programación web introducciónProgramación web introducción
Programación web introducción
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Sin título 1
Sin título 1Sin título 1
Sin título 1
 
lenguajes de programacion
lenguajes de programacionlenguajes de programacion
lenguajes de programacion
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.
 
Lenguajes
LenguajesLenguajes
Lenguajes
 
Lenguajes
LenguajesLenguajes
Lenguajes
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Clasificación de los lenguajes de programación
Clasificación de los lenguajes de programaciónClasificación de los lenguajes de programación
Clasificación de los lenguajes de programación
 

Kürzlich hochgeladen

certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024anasofiarodriguezcru
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfJoseAlejandroPerezBa
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888ElianaValencia28
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdflauralizcano0319
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalEmanuelCastro64
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.radatoro1
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 

Kürzlich hochgeladen (20)

certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamental
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 

Lenguajes Esotéricos

  • 1. Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática 2013 Vol. 1 Nro. 1 1 Programación Esotérica Jesus Alberto Bautista Bellido jesus61_1@hotmail.com Juan Tipismana Lara juan_16_2106@hotmail.com Edson Elías Huamaní Aldoradín edsel94@gmail.com PROGRAMACION ESOTÉRICA: Una breve reseña Estos lenguajes de programación esotéricos datan de la década de los 70 en donde primero aparece el Intercal, a partir de allí es que los programadores deciden dejar de lado los lenguajes que ellos consideran aburridos como Cobol, Basic, Fortran y deciden crear sus propios lenguajes de programación donde prima la diversión sobre la utilidad, además de suponer un desafío tanto para quienes lo crean como para los que tratan de entender esos lenguajes ya que poseen una sintaxis detallada y su alfabeto es muy restringido lo que los hace muy peculiares. Estos lenguajes se encuentran en lo más recóndito de los lenguajes de programación, es decir no se les toma mucha importancia debido a que no son mucha utilidad en la sociedad, mas pasan al olvido en la historia y quedan como creaciones olvidadas de personas que inventaron algo con que entretenerse en su momento, sin embargo también existen otros que son tan absurdo que no tiene caso entenderlos [1]. I. INTRODUCCIÓN Programación esotérica es un lenguaje de programación creado por usuarios con finalidad de satirizar a otros lenguajes que existían en ese entonces como el Cobol, Fortran, entre otros, o por el simple hecho de pasar el rato poniendo a prueba su lenguaje con los límites de sintaxis que puedan entender las personas haciendo que estos lenguajes sean tan insólitos que se sorprenderán de la utilidad que tienen. Estos lenguajes fueron creados para entretener a las personas que quieren entender estos lenguajes, ya que a veces no posee una lógica simple y para entender los lenguajes complicados requiere mucho tiempo hasta años (Malbolge), muchas personas se desaniman en el trayecto e incluso en sus propias páginas oficiales existen requerimientos mínimos que deben saber cómo aprender otros lenguajes básicos como los mencionados anteriormente pero siempre se encontrará en esas páginas mensajes no muy alentadores sino todo lo contrario desmotivan a las personas a que no quieran intentarlo [2]. La mayoría de esos lenguajes no se pueden utilizar en el ámbito empresarial, en el trabajo, o para resolver operaciones comunes como suma, resta, multiplicación o división ya que depende del lenguaje en cuestión si acepta los caracteres comunes que permitan realizarla, es más la utilidad que se les puede dar es creada por cada usuario. II. CONCEPTOS BÁSICOS La programación esotérica se basa en algunos términos que son importantes saberlos: Turing Completo: Se dice que un lenguaje es “Turing completo” cuando sobre este lenguaje se puede crear cualquier tipo de algoritmo que se presente, pero no necesariamente lo más óptimo [3]. Esolang: Son lenguajes de programación esotéricos diseñado con frecuencia no con un objetivo practica sino más bien como una broma o para explorar los límites de creatividad.
  • 2. Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática 2013 Vol. 1 Nro. 1 2 III. USOS EN LA REALIDAD El uso de lenguajes esotéricos que se da en la actualidad no es muy variado, ya que han sido diseñados mayormente para fines de entretenimiento y no para utilidad que se le pueda dar. Tiene como objetivo divertir a la hora de programar y no tienen intención de ser usados en la realidad [1]. Es decir, existen personas que crean su propio lenguaje de programación para así darlo a conocer al público y entretener a los programadores que desean usar este lenguaje. Puede que en la actualidad un lenguaje sea esotérico, y con el tiempo pueda ser un lenguaje aceptado y normal para uso comercial [3] [4]. IV. VENTAJAS Y DESVENTAJAS Ventajas: Generalmente poseen una sintaxis muy básica. Por ejemplo, el BrainFuck cuenta con solo 8 instrucciones de tipo caracter: „>‟ , ‟<‟ , „+‟ , ‟–„ , „.‟ , „,‟ , „[„ , „]‟. La mayoría de ellos son lenguajes Turing- completos, es decir, que se pueden crear todo tipo de algoritmos con estos lenguajes [5]. Normalmente estos lenguajes se usan para probar conceptos en la creación de lenguajes turing completos, por lo que tienen aplicaciones en la informática teórica [6]. Cualquier persona con conocimientos en programación puede crear su propio lenguaje esotérico. Desventajas: Algunos de ellos, como son el INTERCAL que fue creado en el año 1972, son difíciles de entender y casi imposible de programar. Son de difícil aprendizaje y aplicación. No son muy comerciales, por lo que la oferta de empleo para este tipo de lenguajes es reducida [7]. No son útiles para proyectos de gran tamaño. Prima más el entretenimiento que la utilidad y productividad. La mayoría de estos lenguajes no tienen compiladores o intérpretes. V. ALGUNOS EJEMPLOS Estos lenguajes son resultado de pruebas de experimentación, retos personales o simplemente bromas para pasar el rato. No suelen crearse para resolver grandes problemas tecnológicos, sino más bien para mostrar una sintaxis ininteligible, sin embargo es muy apropiada para divertir y entretener a las personas curiosas. Donde la mayoría de estos lenguajes datan de 1972 en donde se creó el primer lenguaje esotérico que es Intercal y de allí comenzaron a surgir diferentes tipos, en diferentes interpretes con distintas sintaxis y todas tienen un nivel alto de complejidad para entenderlo. Veamos algunos ejemplos de lenguajes esotéricos: A. INTERCAL Este lenguaje es el padre de los lenguajes de programación esotéricos. Creado por dos universitarios de la ciudad de Princeton en 1972 Woods y Lyon. Cuentan que su diseño se basó en Cobol, Fortran, Basic ya uso su sintaxis, además de no tener ni ciclos, ni operaciones básicas como la suma. Es un verdadero rompecabezas. Una de las características resaltantes es que en vez de usar la sentencia GOTO, tiene la instrucción COME FROM #, que indica cuando se ha ejecutado la sentencia # se salta a la siguiente sentencia después de COME FROM # y también algunas acciones
  • 3. Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática 2013 Vol. 1 Nro. 1 3 deben pedirse por favor, a las comillas se les llama orejas de conejo [8]. En la actualidad es posible usar INTERCAL, por ejemplo sirve para la instalación en distribuciones Linux como Ubuntu basta con ejecutar esta sentencia [9]: sudo apt-get install intercal Figura 2: Código de “Hello World” en lenguaje Intercal B. MALBOLGE Este lenguaje esotérico es el más complejo de entender hasta ahora, le suelen decir programación del infierno. Fue desarrollado por Ben Olmstead en el año 1998, tiene este nombre en referencia al 8vo círculo del infierno de la obra de Dante, donde están los fraudulentos; este lenguaje tiene como objetivo ser el de más difícil entendimiento y casi siempre las personas que quieren aprenderlo retroceden en el camino y no lo logran, es más siempre se encontrará comentarios desalentadores en las redes sociales para evitar [10]. Un ejemplo de código, acá esta un “Hello world”. (=<`: 9876Z4321UT. –Q+*)M'&%$H”! ~} | Bzy? =| {z]KwZY44Eq0/{mlk** hKs_dG5 [m_BA{ ?-Y;; Vb‟rR54321M }/ .zHGwEDCBA@986543W10/.R,+O< Figura 3: Código “Hello World” en lenguaje Malbolge C. Ook! Es una creación de David Morgan-Mar este lenguaje esotérico turing completo y está diseñado para orangutanes tiene 3 palabras reservadas Ook. , Ook? Y Ook! Que pueden combinarse en 8 maneras diferentes para formar el repertorio de instrucciones. Ook pretende ser de fácil entendimiento para orangutanes. Figura 4: Código de “Hello World” en lenguaje Ook! WHITESPACE ( Los espacios en blanco ) La particularidad de este lenguaje es que solo utiliza el espacio (enter), la tabulación (tab), y la línea en blanco, los demás caracteres son ignorados, fue desarrollado por Edwin Brady y Chris Morris consideraron injusto que en todos los lenguajes de programación los espacios no tengan ningún significado, la única manera de verlos es coloreando la sintaxis para hacer visibles esos espacios en blanco y distinguirlos. ¿Cuáles son las ventajas de usar espacios en blanco? Hay cosas que son difíciles en otros idiomas se hacen mucho más fáciles en los espacios en blanco. Es de mucha utilidad para los espías, imaginando que tenemos un programa de alto secreto que no quieres que nadie vea, basta con imprimir y borrar el archivo, listo para escribir en una fecha posterior. Nadie sabrá que ese pedazo de papel en blanco en un código informático vital. El siguiente código imprime “Hello world!”, con líneas en blanco, tabulador y espacio. Aunque no se vea a simple vista.
  • 4. Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática 2013 Vol. 1 Nro. 1 4 Figura 5: Código de “Hello World” en lenguaje Whitespace Para un fácil entendimiento se tendría que teñir de colores con un editor de texto y se vería de la siguiente manera: - Espacio (rosado) y tabulación (verde claro). Figura 6: Código de “Hello World” en lenguaje Whitespace con editor de texto. D. Piet Este lenguaje inventado por David Morgan-Mar, donde los programa son mapa de bits, son combinación de colores, como si fuera una pintura de arte abstracto, lleva ese nombre en honor al pintor Piet Mondrian, su función es dotar de cierto arte al código del programa. Cada tonalidad y cambio de color representa una operación distinta push, pop, add, substract, mod, roll, out, etc. [11]. Piet utiliza 20 colores distintos formando distinto gráficos que después un intérprete ejecutará como en la siguiente imagen un Hello World. Figura 7: Código de “Hello World” en lenguaje Piet. E. Brainfuck Este lenguaje de programación esotérico está diseñado por Urban Müller en 1993 para ser el de mayor simplicidad y a la vez turing completo, y solo requiere de un compilador completo, lo baso en turing completo y también le sirvió de inspiración al compilador de 1024 bytes de tamaño de lenguaje FALSE [12] [13]. Brainfuck opera sobre una matriz de celdas de memoria, también conocida como cinta, cada una inicialmente a cero. Hay un puntero apuntando inicialmente a la celda de memoria tienen los siguientes comandos:
  • 5. Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática 2013 Vol. 1 Nro. 1 5 Comando Descripción Lenguaje C > Mueve el puntero hacia la derecha ++ptr; < Mueve el puntero hacia la izquierda --ptr; + Incrementa la celda de memoria ++*ptr; Comando Descripción Lenguaje C . Salida del personaje por la célula del puntero Putchar(*ptr); , Introduce un carácter y lo almacena en el puntero *ptr=getchar(); [ Ir más allá de la coincidencia ] si la celda bajo el puntero es 0 While(*ptr){ ] Ir de nuevo al juego[ si la celda bajo del puntero es 0 } Figura 8: Cuadro de comandos de Brainfuck según lenguaje C. ++++++[>+++++++>++++++++++>+++++++++++ >+++>+<<<<- ]>++.>+.+++++++..+++.>++.<<++++++++++++++ +.>.+++.------.---------.>+.>. Figura 8: Código de “Hello World” en lenguaje Brainfuck En un intérprete para Brainfuck, podríamos visualizarlo de la siguiente manera: Figura 9: Interprete de Brainfuck. VI. PROGRAMAS QUE INTERPRETAN ESTOS LENGUAJES Compiladores de algunos Lenguajes Esotéricos Existen una gran variedad de lenguajes Esotéricos por lo tanto no alcanzaría para explayarlos todos en un artículo tan ameno. Pero mostraremos algunos de los compiladores de aquellos lenguajes esotéricos [14][15][16]. A. INTERCAL: El código se crea y se compila muy bien bajo cualquier plataforma ANSI/POSIX, incluyendo a Linux y sus versiones BSD libres. Las versiones anteriores de este código se ejecutan en DOS/Windows, aunque si todavía lo hará es desconocida [17]. B. WHITESPACE: El código debería compilar en cualquier máquina Unix con el Glasgow Haskell Compiler versión 5.02 o posterior. También nos informaron de que compila correctamente en OS X 10.2.4 sin problemas. Sin embargo, esta es una versión beta temprana, así que los problemas todavía pueden existir. C. BRIANFUCK: El primer intérprete y compilador de este lenguaje fue para los sistemas Amiga. Brainfucked por otro lado es un potente y eficiente compilador brainfuck para sistemas Windows y MS-DOS. El compilador dispone de un avanzado programa de optimización de código y, por tanto creados
  • 6. Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática 2013 Vol. 1 Nro. 1 6 con Brainfucked son bastante pequeñas. Brainfucked, por supuesto, comprueba la sintaxis de los programas brainfuck para detectar errores comunes y posibles antes de compilar. También es capaz de compilar para diferentes plataformas como Windows, DOS, Linux, Unix y Mac OS X. Cada programa compilado con Brainfucked es ejecutable bajo Windows y MS- DOS. Visual brainfuck es un entorno de desarrollo compatible con Windows 7 integrado para desarrolladores de todo el mundo que prefieren el enfoque brainfuck. Tiene las herramientas necesarias para cumplir con altos estándares de calidad actuales en lo que respecta al desarrollo de aplicaciones profesionales... en brainfuck [18]. VII. CONCLUSIONES - Todos estos lenguajes fueron creados espontáneamente por universitarios, entre otros, con la única finalidad que es entretener a las personas que quieran aprenderlo, pero para que no sea simple los crearon con una sintaxis compleja para que sea todo un reto. - La plataforma apropiada para ejecutar estos lenguajes esotéricos es Linux ya que nos ofrece una flexibilidad para crear lenguajes y contar con un entorno para poder probarlo. - Podemos decir que los lenguajes esotéricos se encuentran tan ocultos, en lo más recóndito ya que no se le puede dar una buena utilidad en la vida real, sin embargo existen algunos que si se le da una acción malintencionada podría generar riesgos de muy alto nivel en la sociedad (como es el caso del lenguaje Whitespace usado por espías). - Existen unos cuantos lenguajes que con grandes ideas pueden llegar a tener una utilidad enorme como el caso del lenguaje Ook! Que interactúa con orangutanes, de manera que podría llegar a convertirse en parte la investigación del entendimiento del lenguaje de los orangutanes. - - La gran mayoría de los lenguajes se encuentran en fase experimental por ende no existe un compilador oficial, pero si se pueden probar por plataformas como ANSI/POSIX en Linux, en Windows o por MS-DOS. REFERENCIAS [1] Miguel Santirso, Lenguajes de programación esotérica, http://miguelsantirso.es/blog/2007/01/lenguajes-de- programacion-esotericos/, Enero 2003. [2] Anabella Roman, Edgardo Fernandez, Gianni Sabbione, Lisando Pardo, Mario Sacco, Matias Benitez, Max Ferzzola, Nico Veronas Whitespace : lenguaje de programación, http://www.neoteo.com/whitespace-lenguaje-de- programacion-esoterico , 2010 [3] Alan Lazalde - Programación esotérica - http://gr3p.com/2011/02/programacion-esoterica/ - Febrero 2011. [4] Fundación Wikimedia, Inc Lenguaje de programación esotérico, http://es.wikipedia.org/wiki/Lenguaje_de_programaci %C3%B3n_esot%C3%A9rico, Marzo 2013 [5] Francisco I. Leyva - Programación esotérica - http://www.panchosoft.com/blog/2006/12/05/progra macion-esoterica/ - Diciembre 2006. [6] Pedro Gimeno Fortea - Recreaciones computacionales http://www.formauri.es/personal/pgimeno/compurec/ LenguajesEsotericos.php - Mayo 2005. [7] Alvaro Graves - Lenguajes Esotéricos - http://manzanamecanica.org/2008/05/lenguajes_esote ricos.html - Mayo 2008.
  • 7. Universidad Nacional Mayor de San Marcos (UNMSM) / Facultad de Ingeniería de Sistemas e Informática 2013 Vol. 1 Nro. 1 7 [8] Fundación Wikimedia, Inc - Intercal http://es.wikipedia.org/wiki/INTERCAL - Marzo 2013 [9] Eric Raymond, Recursos de intercal- http://catb.org/esr/intercal/ , Mayo 2013 [10] Lou Scheffer, Introducción a Malbolge http://www.lscheffer.com/malbolge.shtml, diciembre del 2007. [11] Alvy , Piet: Un lenguaje de programación esotérico, bellamente matemático, http://www.microsiervos.com/archivo/ordenadores/pi et-lenguaje-programacion.html, Marzo 2009 [12] Brian Raiter, Brainfuck- www.muppetlabs.com/~breadbox/bf/ [13] Brainfuck, http://esolangs.org/wiki/brainfuck, Mayo 2013. [14] Hackerdou, http://hackerdou.com/blog/2012/10/10/lenguajes-de- programacion-esotericos/ [15] Programación en Castellano, http://www.programacion.com/articulo/lenguajes_eso tericos_207 - Enero 2003 [16] Esolangs http://esolangs.org/wiki/Language_list [17] The Intercal Resources Page, http://www.catb.org/~esr/intercal/, May 2013. [18] Visual Brianfuck https://sites.google.com/site/visualbf/, 2013