Langbahn Team – Weltmeisterschaft

LOLCODE

Logo interpretera lci LOLCODE dla języka programowania LOLCODE

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

using namespace std;

int main()

{

2 CAN HAS STDIO?
3 I HAS A VAR Deklaracja zmiennej VAR. for

( int wartosc = 1;

wartosc<=10; wartosc++

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

cout << wartosc << " ";

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 HAICAN HAS STDIO? Rozpoczęcie programu i zadeklarowanie biblioteki. #include <iostream>

using namespace std;

int main()

{

2
3 I HAS A VAR Deklaracja i pobieranie zmiennej VAR. int wartosc;

cout << "Podaj liczbę: " <<endl;

4 GIMMEH VAR
5 IZ VAR BIGGER THAN 10? Warunek: Czy VAR jest większe niż 10? if (wartosc>10){

//Wartość prawdziwa = 1

cout<<"Liczba"<< wartosc << "jest większa niż 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

cout<<"Liczba"<< wartosc << "jest większa niż 10";

}

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

  1. Dwight Silverman: I’M IN UR NEWSPAPER WRITIN MAH COLUM. Chron.com, 2007-06-06. [dostęp 2007-06-06].
  2. SORN.net. sorn.net. [zarchiwizowane z tego adresu (2009-03-26)]..

Linki zewnętrzne