
LOLCODE – ezoteryczny język programowania zainspirowany językiem pidgin English, używanym w fenomenie internetowym LOLCAT[1]. Język został stworzony w 2007 r. przez Adama Lindsaya, pracownika Wydziału Informatyki Lancaster University.
Język nie ma jeszcze dokładnie zdefiniowanej składni i semantyki. Mimo to istnieje już kilka działających interpreterów i kompilatorów.
Struktura języka i przykłady
[edytuj | edytuj kod]LOLCODE jest napisany w mocno skróconym angielskim internetowym slangu i osoby, które go rozumieją, potrafią często zrozumieć zasadę działania programów bez doświadczenia programistycznego. Poniżej przykład programu Hello world oraz programu wypisującego zawartość pliku.
Składnia "Hello World" w języku LOLCODE
[edytuj | edytuj kod]HAI CAN HAS STDIO? VISIBLE "HAI WORLD!" KTHXBYE
Kod Komentarz HAIWe wszystkich programach napisanych w LOLCODE, HAI(slangowy odpowiednik angielskiego „hi”) rozpoczyna program.CAN HAS [PLIK]?Odpowiada za załadowanie bibliotek z dodatkowymi funkcjami. W języku C odpowiednikiem jest #include <PLIK>.VISIBLE [TEKST]Wypisuje tekst. KTHXBYEKończy każdy program.
Zmienne i pętle
[edytuj | edytuj kod] HAI
CAN HAS STDIO?
PLZ OPEN FILE "LOLCATS.TXT"?
AWSUM THX
VISIBLE FILE
O NOES
INVISIBLE "ERROR!"
KTHXBYE
W tym przykładzie zastosowana została komenda otworzenia pliku (PLZ OPEN FILE „NAZWA”? – „Proszę otwórz plik „NAZWA”?) oraz zwracanie wyjątków (AWSUM THX – „Świetne, dzięki!” i O NOES – „O nie!”).
Inne komendy to[2]:
| Komenda | Działanie |
|---|---|
I HAS A zmienna
|
Deklarowanie zmiennej. |
LOL zmienna R wartość
|
Przypisanie wartości do zmiennej. |
BTW komentarz
|
Traktowanie wszystkich znaków, aż do końca linii, jako komentarz. |
INVISIBLE
|
Zwracanie błędu na standardowy strumień błędów. |
IM IN YR nazwa
|
Zwracanie błędu na standardowy strumień błędów. |
KTHX
|
Zakończenie pętli. |
GTFO
|
Przerwanie pętli. |
ENUF
| |
IZ
|
Instrukcja warunkowa. |
Przykłady
[edytuj | edytuj kod]Program wypisujący liczby od 1 do 10
[edytuj | edytuj kod]| Linia lolkodu | LOLCODE | Wyjaśnienie linii kodu | Porównanie do C++ |
|---|---|---|---|
| 1 | HAI
|
Rozpoczęcie programu i zadeklarowanie biblioteki. | #include <iostream>
|
| 2 | CAN HAS STDIO?
| ||
| 3 | I HAS A VAR
|
Deklaracja zmiennej VAR. | for
|
| 4 | IM IN YR LOOP
|
Zwracanie błędu na standardowy strumień błędów pętli. | |
| 5 | UP VAR!!1
|
Proces dodawania o wartości o 1, tzw. inktementacja | |
| 6 | IZ VAR BIGGER THAN 10? HTHX
|
Jeżeli VAR jest większy niż 10, to przestań inkrementować. | |
| 7 | VISIBLE VAR
|
Wypisz VAR. | )
|
| 8 | IM OUTTA YR LOOP
|
Koniec pętli. | |
| 9 | KTHXBYE
|
Zakończenie programu. | return 0;
|
Powyższy program wypisuje liczby od 1 do 10 (został napisany według specyfikacji w wersji 1.0).
Ten sam program można zapisać (według specyfikacji 1.2) w następujący sposób:
HAI
CAN HAS STDIO?
IM IN YR LOOP UPPIN YR VAR TIL BOTHSAEM VAR AN 10
VISIBLE SUM OF VAR AN 1
IM OUTTA YR LOOP
KTHXBYE
Program sprawdzający czy liczba jest większa od 10
[edytuj | edytuj kod]| Linia lolkodu | LOLCODE | Wyjaśnienie linii kodu | Porównanie do C++ | |
|---|---|---|---|---|
| 1 | HAICAN HAS STDIO?
|
Rozpoczęcie programu i zadeklarowanie biblioteki. | #include <iostream>
| |
| 2 | ||||
| 3 | I HAS A VAR
|
Deklaracja i pobieranie zmiennej VAR. | int wartosc;
| |
| 4 | GIMMEH VAR
| |||
| 5 | IZ VAR BIGGER THAN 10?
|
Warunek: Czy VAR jest większe niż 10? | if (wartosc>10){
| |
| 6 | YARLY
|
Jeżeli tak: | ||
| 7 | BTW to jezt prafdziwe
|
Nie widoczny komentarz | ||
| 8 | VISIBLE "DUZA LICBA!"
|
Wypisywanie informacji, że VAR jest większa niż 10. | ||
| 9 | NOWAI
|
Jeżeli nie: | else if (wartosc>10)
|
else
|
| 10 | BTW ta wardotz jest falzywa
|
Nie widoczny komentarz | {//Wartość fałszywa = 0
| |
| 11 | VISIBLE "MALA LICBA!"
|
Wypisywanie informacji, że VAR jest mniejsza niż 10. | ||
| 12 | KTHX
|
Zakończenie instrukcji if/else. | ||
| 13 | KTHXBYE
|
Zakończenie programu. | return 0;
| |
Wsparcie
[edytuj | edytuj kod]Obsługa LOLCODE została dodana do wirtualnej maszyny Parrot.
Istnieje oparty na platformie .NET kompilator LOLCODE, napisany przez Nicka Johnsona. Został wyróżniony podczas organizowanych przez Microsoft seminariów TechED 2007 Conference w Australii.
Przypisy
[edytuj | edytuj kod]- ↑ Dwight Silverman: I’M IN UR NEWSPAPER WRITIN MAH COLUM. Chron.com, 2007-06-06. [dostęp 2007-06-06].
- ↑ SORN.net. sorn.net. [zarchiwizowane z tego adresu (2009-03-26)]..
Linki zewnętrzne
[edytuj | edytuj kod]- Oficjalna strona LOLCODE. lolcode.com. [zarchiwizowane z tego adresu (2013-03-04)].
- LOLPython
- The new fame: Internet celebrity, artykuł CNN









