LOLCODE
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
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
HAI CAN HAS STDIO? VISIBLE "HAI WORLD!" KTHXBYE
Kod Komentarz HAI
We 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. KTHXBYE
Kończy każdy program.
Zmienne i pętle
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
Program wypisujący liczby od 1 do 10
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
Linia lolkodu | LOLCODE | Wyjaśnienie linii kodu | Porównanie do C++ | |
---|---|---|---|---|
1 | HAI CAN 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
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
- ↑ 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
- Oficjalna strona LOLCODE. lolcode.com. [zarchiwizowane z tego adresu (2013-03-04)].
- LOLPython
- The new fame: Internet celebrity, artykuł CNN