LOLCODE

llenguatge de programació From Wikipedia, the free encyclopedia

LOLCODE
Remove ads

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]

Dades ràpides Tipus, Data de creació ...
Remove ads

Estructura del llenguatge

Paraules reservades

Les paraules reservades del LOLCODE es treuen del patuès altament comprimit (abreviat) del meme d'Internet lolcat. Totes les paraules reservades s'escriuen en majúscula.

Més informació Codi, Comentari ...

Funcions

Les funcions són declarades de la següent manera:

HOW IZ I [nom de la funció] (YR [argument1] (AN YR [argument2] (AN YR [argument3] ...))) [bloc de codi] IF U SAY SO

La funció pot retornar un valor concret fent servir FOUND YR [expression] o bé un valor nul amb GTFO.

Per executar la funció es fa amb:

I IZ [nom de la funció] (YR [argument1] (AN YR [argument2] (AN YR [argument3] ...))) MKAY

Si els arguments són expressions, s'evaluen abans d'executar la funció.

Tipus de variables

Més informació Codi, Comentari ...

YARN és indicada entre cometes ("). Tots els caràcters de la cadena representen el seu propi valor excepte :, que és el caràcter d'escapament. :) és el salt de línia, :> és una tabulació, :" permet incloure les cometes i :: els dos punts, :([hex]) mostra un caràcter indicat amb codi hexadecimal, :{[var]} permet inserir el valor actual d'una variable a la cadena, i :[[char name]] obté una lletra a partir del seu nom normatiu Unicode.

La següent funció interna permet concatenar diferents YARN:

SMOOSH [argument1] AN [argument2] (AN [argument3] (AN [argument4] ...)) MKAY

BUKKIT es pot definir de dues maneres:

BTW declaration of the BUKKIT
I HAS A [object] ITZ A BUKKIT

BTW creating a variable in a slots
[object] HAS A [var] ITZ [value]

BTW creating a function inside the BUKKIT
HOW IZ [object] [function name] (YR [argument1] (AN YR [argument2] (AN YR [argument3] ...)))
	[function code]
IF U SAY SO
BTW declaration of the BUKKIT
O HAI IM [object]
	BTW creating a variable in a slot
	I HAS A [var] ITZ [value]

	BTW creating a function inside the BUKKIT
	HOW IZ I [function name] (YR [argument1] (AN YR [argument2] (AN YR [argument3] ...)))
		[function code]
	IF U SAY SO
KTHX
Remove ads

Exemples

Els següents programes són un programa Hola Món! i un programa simple per imprimir un fitxer per pantalla.[5] El Houston Chronicle va publicar-ne un codi semblant.[1]

Exemple 1

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

Exemple 2

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

En aquest exemple, 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!").[5]

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

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

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
Remove ads

Implementacions

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 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

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

Enllaços externs

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads