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 aques 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. S'han de trencar manualment amb la instrucció ENUF, "enough" en Leetspeak (versió antiga GTFO).[6] 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.[7][8] 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.[9][10]

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

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.[15]

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

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

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.[18]

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


Projectes relacionats[modifica | modifica el codi]

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

Referències[modifica | modifica el codi]

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

Enllaços externs[modifica | modifica el codi]