LOLCODE

De Viquipèdia
Dreceres ràpides: navegació, cerca
LOLCODE
Paradigma de programació: esotèric
Aparegut l'any: 2007
Desenvolupador: Adam Lindsay
Influenciat per: Lolcats

LOLCODE és un llenguatge de programació esotèric inspirat en el llenguatge expressat en exemples del meme d'internet lolcat.[1] El llenguatge va ser creat el 2007 per Adam Lindsay, investigador al Departament de Computació de la Universitat de Lancaster.[2] El llenguatge està clarament definit respecte a prioritat d'operadors i sintaxi correcta, però ja existeixen diferents interpretadors i compiladors funcionals. S'ha demostrat que el llenguatge és Turing complet.[3]

Exemples i estructura del llenguatge[modifica | modifica el codi]

Les paraules clau del LOLCODE es treuen del patuès altament comprimit (abreviat) del meme d'Internet lolcat. Els següents programes són un programa Hola Món! i un programa simple per imprimir un fitxer per pantalla. El Houston Chronicle va publicar-ne un codi semblant.[1]

Exemple 1[modifica | modifica el codi]

HAI
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE

[4]

Codi Comentari
HAI En tots els programes en LOLCODE, HAI introdueix el programa.
CAN HAS [LIBRARY]? En molts llenguatges de programació, una de les primeres instruccions seria una inclusió d'una llibreria per a les funcions bàsiques com les d'entrada i sortida. Normalment s'inclouen amb crides com #include <stdio.h> [stdio referint-se a la llibreria d'entrada i sortida estàndard]. Aquesta instrucció és una derivada d'allò, demanant si es pot obtenir la llibreria, obtenint-la si és possible, i llançant una excepció si no ho és.[5] Es posa principalment per autenticitat — de fet, en les implementacions actuals de LOLCODE s'ignora.
VISIBLE [MESSAGE] imprimeix un missatge per pantalla.
KTHXBYE HAI introdueix el programa, per tant, KTHXBYE (que significa "Okay Thanks, Bye") el finalitza.

Exemple 2[modifica | modifica el codi]

 HAI
 CAN HAS STDIO?
 PLZ OPEN FILE "LOLCATS.TXT"?
     AWSUM THX
         VISIBLE FILE
     O NOES
         INVISIBLE "ERROR!"
 KTHXBYE

En aquest exemple,[4] s'introdueixen les instruccions per a obrir un fitxer(PLZ OPEN FILE "NAME"? — "Please try to open a file?"), i tractament d'errors (AWSUM THX — "Awesome, thanks!", i O NOES — "Oh no!").

Altres comandes inclouen I HAS A variable per a declarar variables, variable R valor ("variable [és/està/sent] value") per a tal d'assignar valors a les variables, enviant errors per la sortida amb INVISIBLE en comptes de VISIBLE, i BTW ("by the way") per a anotar comentaris, fent que l'analitzador sintàctic ignori la resta de la línia. Els bucles es creen amb IM IN YR etiqueta (del meme d'internet "I'm in your ___"), i acaben amb IM OUTTA YR etiqueta. Els bucles no tenen comptadors ni condicions, i, per tant, no acaben intrínsecament. Els bucles també es poden acabar amb la comanda condicional IZ:

Exemple 3[modifica | modifica el codi]

HAI
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
   UP VAR!!1
   IZ VAR BIGGER THAN 10? KTHX
   VISIBLE VAR
IM OUTTA YR LOOP
KTHXBYE

[4]

Aquest simple programa imprimeix per pantalla els nombres de l'1 al 10 i acaba (amb l'especificació 1.0). El mateix programa amb l'especificació 1.2 (assumint que VAR comença a 0):

HAI
CAN HAS STDIO?
IM IN YR LOOP UPPIN YR VAR TIL BOTH SAEM VAR AN 10
    VISIBLE SUM OF VAR AN 1
IM OUTTA YR LOOP
KTHXBYE

Implementacions[modifica | modifica el codi]

La primera implementació LOLCODE va ser un analitzador sintàctic PHP escrit per Jeff Jones.[6][7] La web de l'analitzador sintàctic també va ser la primera web usant LOLCODE com a llenguatge de scripts. Com que és codi lliure amb una llicència d'estil BSD, s'ha bifurcat i usat en diverses webs per a implementar scripts LOLCODE. La presentació Pecha Kucha guanyadora a l'edició del 2008 de PHP Works era sobre aquest analitzador.[8][9]

Hi ha un compilar .NET per a LOLCODE escrit per Nick Johnson,[10] i que va tenir un article en els seminaris d'entrenament de desenvolupadors de Microsoft, la Conferència TechEd de 2007 (Austràlia).[11][12][13]

PL/LOLCODE, un projecte dirigit per Josh Tolley, fa que el LOLCODE estigui disponible com a llenguatge de programació des d'un servidor dins de PostgreSQL.[14]

El Dynamic Language Runtime de Microsoft té una implementació de LOLCODE per a fins experimentals.[15]

També hi ha disponible un interpretador JavaScript.[16]

També hi ha un compilador LOLCODE inclòs amb la màquina virtual Parrot com a un dels llenguatges demostrant l'ús de les eines de compilació del Parrot.[17]

Existeix un interpretador de baix nivell escrit en C, mantingut per Justin J. Meza, per a proveir d'interpretació LOLCODE en diverses plataformes.[18]

Projectes relacionats[modifica | modifica el codi]

LOLCODE també ha inspirat LOLPython, escrit per Andrew Dalke. LOLPython usa una sintaxi inspirada en Lolcats similar a la del LOLCODE, però amb estil semblant al Python. Funciona traduint la font Python en codi Python.[19]

Referències[modifica | modifica el codi]

  1. 1,0 1,1 Dwight Silverman. «I'm in ur newspaper writin mah colum». Chron.com, 06-06-2007. [Consulta: 6 juny 2007].
  2. Hammock, Anne «The new fame: Internet celebrity». CNN, 01-05-2008.
  3. Arachnid. «Proof that LOLCode is turing complete:BrainF*** interpreter in LOLCode». forum.lolcode.com. [Consulta: 5 octubre 2008].
  4. 4,0 4,1 4,2 Adam Lindsay. «" LOLCODE main page». lolcode.com, 25-05-2007. [Consulta: 2 octubre 2007].
  5. «keywords:can-has · LOLCODE». [Consulta: 10 febrer 2008].
  6. «First Parser Comment». Lindsay.at. [Consulta: 9 juny 2009].
  7. «Tetraboy's LOLCODE parser». Tetraboy.com. [Consulta: 9 juny 2009].
  8. «"The Best Web Language: LOLCODE" Slides». Slideshare.net. [Consulta: 9 juny 2009].
  9. PHP Works
  10. LOLCODE .NET compiler at Google Code
  11. TechEd Day 2: Microsoft announces LOLCode support, Long Zheng
  12. LOLcode in next Visual Studio? For young and funny cats, NetworkWorld.com
  13. «Video of LOLCODE presentation at TechEd 2007». Blip.tv, 17-08-2007. [Consulta: 9 juny 2009].
  14. PL/LOLCODE, pgFoundry
  15. Deep DLR, John Lam and Martin Maly
  16. «LolCode». Fullvolume.co.uk. [Consulta: 9 juny 2009].
  17. «Lightning-Parrot». lolcode.com. [Consulta: 20 juny 2009].
  18. [enllaç sense format] http://www.icanhaslolcode.org/ I Can Has lolcode? - an efficient LOLCODE interpreter written in C.
  19. «LOLPython». Dalkescientific.com, 01-06-2007. [Consulta: 9 juny 2009].

Enllaços externs[modifica | modifica el codi]