De Wikipedia, la enciclopedia libre
Ir a navegaciónSaltar a buscar

LOLCODE es un lenguaje de programación esotérico inspirado en lolspeak , el lenguaje expresado en ejemplos del meme de Internet lolcat . [1] El lenguaje fue creado en 2007 por Adam Lindsay, investigador del Departamento de Computación de la Universidad de Lancaster . [2] [3]

El lenguaje no está claramente definido en términos de las prioridades del operador y la sintaxis correcta, pero existen varios intérpretes y compiladores que funcionan. Una interpretación del idioma ha sido probada como Turing-completa . [4]

Estructura del lenguaje y ejemplos

LOLCODE de palabras clave se han extraído de la fuertemente comprimido (abreviado) patois del meme lolcat Internet. Aquí sigue un "¡Hola, mundo!" programa y un programa simple para enviar un archivo a un monitor. [5] Se imprimió un código similar en el Houston Chronicle . [1]

Ejemplo 1

HAI 1.2
¿PUEDE TENER STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE

Ejemplo 2

HAI 1.2
¿PUEDE TENER STDIO?
PLZ ABRIR ARCHIVO "LOLCATS.TXT"? AWSUM THX ARCHIVO VISIBLE Oh noes INVISIBLE "ERROR!"
KTHXBYE

En este ejemplo, se introducen [5] comandos para abrir un archivo ( PLZ OPEN FILE "NAME"?- "¿Intente abrir un archivo?") Y manejo de errores ( AWSUM THX- "¡Genial, gracias!" Y O NOES- "¡Oh, no!").

Otros comandos incluyen para declarar variables, ("variable [es / son / ser] valor") para asignarlos, enviar mensajes de error al front-end a través de en lugar de , y ("por cierto") para denotar un comentario, haciendo que el el analizador ignora el resto de la línea. I HAS A variablevariable R valueINVISIBLEVISIBLEBTW

Los bucles se crean con IM IN YR ''label''(inspirado por el "Estoy en un sustantivo , verbo con un sustantivo relacionado " LOLcat meme ) y terminan con IM OUTTA YR ''label''. Los bucles se puede romper con la palabra clave ENUF( "suficiente"), o en las versiones anteriores, GTFO. [7] Los bucles también se pueden finalizar con el IZcomando condicional , como se muestra en el siguiente ejemplo.

Ejemplo 3

HAI 1.0
¿PUEDE TENER STDIO?
TENGO VAR
Estoy en bucle de año SUBIR VAR !! 1 VAR VISIBLE ¿VARÍA MÁS GRANDE QUE 10? KTHX
IM OUTTA AÑO BUCLE
KTHXBYE

[5]

Este sencillo programa muestra los números del 1 al 11 y termina (a partir de la especificación 1.0). El mismo programa que el de la especificación 1.2 es (asumiendo que VAR comienza en 0):

HAI 1.2
¿PUEDE TENER STDIO?
IM IN YR LOOP UPPIN YR VAR HASTA AMBOS SAEM VAR AN 10 SUMA VISIBLE DE VAR AN 1
IM OUTTA AÑO BUCLE
KTHXBYE

Ejemplo 4

HAI 1.0¿PUEDE TENER STDIO?VISIBLE "U VER ESTO"Por cierto, visible "U no ve nada"OBTWVISIBLE "U NO VE NADA"VISIBLE "AÚN NO VES NADA"TLDRVISIBLE "U VER ESTO"KTHXBYE

El ejemplo anterior devolverá lo siguiente:

U VER ESTO
U VER ESTO

Esto se debe a que la línea 3 da salida, U SEE THISpero la línea 5 se ignora debido al hecho de que está comentada por la BTWpalabra clave. Las líneas 8 y 9 no se ejecutan porque están en un comentario de varias líneas que comienza en la línea 7 y termina en la línea 10. La línea 12 sale U SEE THISy la línea 13 termina el programa.

Implementaciones

El intérprete más reciente y actualizado para el lenguaje LOLCODE es lci , escrito en C por Justin Meza. Interpreta LOLCODE de manera eficiente en una variedad de plataformas. [8]

La primera implementación de LOLCODE fue un analizador de PHP escrito por Jeff Jones. [9] [10] El sitio web del analizador también fue el primer sitio web que utilizó LOLCODE como un lenguaje de programación web real. Al ser de código abierto con una licencia de estilo BSD, ha sido bifurcado y utilizado por varios sitios web para implementar secuencias de comandos LOLCODE. La presentación ganadora de Pecha Kucha en PHP Works 2008 fue sobre este analizador. [11] [12]

Hay un compilador .NET para LOLCODE escrito por Nick Johnson, [13] y presentado en los seminarios de formación para desarrolladores de Microsoft , TechEd 2007 Conference (Australia). [14] [15] [16]

PL / LOLCODE, un proyecto encabezado por Josh Tolley, hace que LOLCODE esté disponible como un lenguaje de programación del lado del servidor dentro de PostgreSQL. [17]

Microsoft Dynamic Language Runtime tiene una implementación de LOLCODE con fines de prueba. [18]

lolcode-java (Una gramática / intérprete de Java para el lenguaje de programación LOLCODE) es un proyecto también disponible [19] pero parece que todavía no cumple con la especificación de la versión 1.3.

También está disponible un traductor de LOLCODE a JavaScript . [20]

También hay un compilador LOLCODE incluido con la máquina virtual Parrot como uno de los lenguajes que demuestran el uso de las herramientas del compilador de Parrot. [21]

Un compilador, máquina virtual y depurador, creado por Piper, para un lenguaje similar a LoLCode, LoLCode 1337, escrito en C, está aquí [22]

Puede encontrar una versión para computación paralela y distribuida aquí . [23]

Proyectos relacionados

LOLCODE también ha inspirado a LOLPython, escrito por Andrew Dalke. LOLPython usa una sintaxis inspirada en LOL similar a la de LOLCODE, pero con un estilo similar a Python. Funciona traduciendo la fuente LOLPython al código Python. [24]

ArnoldC es una rama de LOLCODE que reemplaza lolspeak con citas de diferentes películas de Arnold Schwarzenegger . [25]

Referencias

  1. ↑ a b Dwight Silverman (6 de junio de 2007). "Estoy en tu periódico escribiendo mah column" . Chron.com . Consultado el 6 de junio de 2007 .
  2. ^ "Departamento de informática de la Universidad de Lancaster - Noticias" . Universidad de Lancaster, Departamento de Computación. Archivado desde el original el 28 de mayo de 2009 . Consultado el 9 de junio de 2009 .
  3. Hammock, Anne (1 de mayo de 2008). "La nueva fama: celebridad de Internet" . CNN . Archivado desde el original el 30 de abril de 2009.
  4. ^ Arácnido. "Prueba de que LOLCode se está completando: intérprete BrainF *** en LOLCode" . forum.lolcode.com. Archivado desde el original el 11 de julio de 2007 . Consultado el 5 de octubre de 2008 .
  5. ↑ a b c Adam Lindsay (25 de mayo de 2007). "Página principal de LOLCODE" . lolcode.com. Archivado desde el original el 2 de octubre de 2007 . Consultado el 2 de octubre de 2007 .
  6. ^ "palabras clave: can-has · LOLCODE" . Archivado desde el original el 6 de febrero de 2008 . Consultado el 10 de febrero de 2008 .
  7. ^ "SORN.net" . Archivado desde el original el 16 de febrero de 2009 . Consultado el 7 de noviembre de 2007 .
  8. ^ "LOLCODE + lci" .
  9. ^ "Primer comentario del analizador" . Lindsay.at. Archivado desde el original el 19 de mayo de 2009 . Consultado el 9 de junio de 2009 .
  10. ^ "Analizador LOLCODE de Tetraboy" . Tetraboy.com. Archivado desde el original el 27 de febrero de 2009 . Consultado el 9 de junio de 2009 .
  11. ^ " " El mejor lenguaje web: LOLCODE "Diapositivas" . Slideshare.net . Consultado el 9 de junio de 2009 .
  12. ^ "PHP funciona" . mtacon.com . Consultado el 4 de noviembre de 2014 .
  13. ^ Compilador LOLCODE .NET en Google Code
  14. ^ TechEd Día 2: Microsoft anuncia soporte para LOLCode , Long Zheng
  15. ^ ¿ LOLcode en el próximo Visual Studio? Para gatos jóvenes y divertidos , NetworkWorld.com
  16. ^ "Video de la presentación de LOLCODE en TechEd 2007" . Blip.tv. 2007-08-17. Archivado desde el original el 5 de febrero de 2009 . Consultado el 9 de junio de 2009 .
  17. ^ PL / LOLCODE , pág.
  18. ^ Deep DLR , John Lam y Martin Maly
  19. ^ "intérprete de gramática lolcode escrito en Java" .
  20. ^ "LolCode" . Fullvolume.co.uk . Consultado el 9 de junio de 2009 .
  21. ^ "Loro-relámpago" . lolcode.com. Archivado desde el original el 22 de marzo de 2009 . Consultado el 20 de junio de 2009 .
  22. ^ "LoLCode 1337" .
  23. ^ "Computación paralela y distribuida con LOLCODE" .
  24. ^ "LOLPython" . Dalkescientific.com. 2007-06-01 . Consultado el 9 de junio de 2009 .
  25. ^ https://lhartikk.github.io/ArnoldC/

Enlaces externos

  • Sitio web oficial