| LOLCODE linguaggio di programmazione | |
|---|---|
| Data di origine | 2007 |
| Ultima versione | 0.10.5 (21 aprile 2014) |
| Paradigmi | programmazione imperativa, programmazione procedurale e programmazione strutturata |
| Estensioni comuni | lol e lols |
| Influenzato da | Lolcat |
| Implementazione di riferimento | |
| Sito web | www.lolcode.org |
LOLCODE è un linguaggio di programmazione esoterico, ispirato al fenomeno di Internet dei lolcat. Il linguaggio è stato creato nel 2007 da Adam Lindsay, ricercatore al dipartimento di ricerca informatica della Lancaster University.
Il linguaggio LOLCODE è scritto attraverso uno slang in lingua inglese estremamente sintetico, in modo tuttavia da risultare comprensibile a chi conosce lo slang. Segue un semplice esempio di programma, che stampa a video il messaggio Hello world:
Esempio 1
HAI
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE
| Codice | Commento |
|---|---|
HAI
|
serve a introdurre il programma. |
CAN HAS [FILE]?
|
In molti linguaggi di programmazione, una delle prime istruzioni di un programma sarà quella che permette di includere una libreria, dove saranno presenti funzioni comuni come quelle di input e output. Tipicamente questo viene eseguito con una chiamata del tipo #include <stdio.h> (stdio è la libreria che include le funzioni di input e output standard del C). Nel LOLCODE il comando "chiede" se il file è disponibile, e lo apre se la risposta è affermativa. |
VISIBLE [MESSAGGIO]
|
stampa un messaggio a schermo. |
KTHXBYE
|
contrazione di "Okay — thanks — bye!", conclude il programma. |
Esempio 2:
HAI
CAN HAS STDIO?
PLZ OPEN FILE "LOLCATS.TXT"?
AWSUM THX
VISIBLE FILE
O NOES
INVISIBLE "ERROR!"
KTHXBYE
In questo esempio vengono introdotti nuovi comandi:
| Codice | Commento |
|---|---|
PLZ OPEN FILE "NAME"?
|
serve per aprire i file. |
AWSUM THX
O NOES
|
servono per la gestione delle eccezioni. |
Altri comandi includono:
| Codice | Commento |
|---|---|
I HAS A ''variabile''
|
per dichiarare le variabili. |
LOL ''variabile'' R ''valore''
|
per assegnarle. |
INVISIBLE
|
serve per mandare messaggi d'errore ad un front end. |
BTW
|
serve per scrivere un commento. |
IM IN YR ''etichetta''
KTHX
|
Per aprire e chiudere un ciclo. |
GTFO
ENUF
IZ
|
servono per terminare i cicli: questi non hanno delle condizioni, e sono infiniti. |
Esempio 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
Altra versione del programma precedente:
HAI
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP UPPIN YR VAR TIL BOTHSAEM VAR AN 10
VISIBLE SUM OF VAR AN 1
IM OUTTA YR LOOP
KTHXBYE