Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Ezoteryczne języki programowania, część 2

Zachęcony pozytywnymi komentarzami do poprzedniego wpisu przedstawiam drugą dawkę niecodziennych języków programowania ;)

HQ9+

Uważacie, że 8 instrukcji dostępnych Brainfuck'u to mało? Przedstawiam Wam język, który zawiera jedynie 4 instrukcje. Jakie? Do tego zaraz. Zapewne większość z programistów naukę języka zaczyna od sławetnego "Hello World". Nieważne ile języków umiecie i w ilu mieliście okazje wyświetlić Hello World, chyba w żadnym nie jest to tak proste jak w HQ9+. Oto cały kod programu:HTak, to już wszystko ;) Język ten składa się z instrukcji:
H - wyświetla "Hello World" ;) Twórca tego języka idzie na rękę uczącym się ;)
Q - wyświetla cały kod źródłowy programu
9 - wyświetla tekst piosenki "99 Bottles of Beer on the Wall"
+ - zwiększa o 1 akumulator.

Wystarczy nauczyć się nazwy, by znać cały język ;) Teraz porównajcie sobie program "99 Bottles of Beer on the Wall" w HQ9+ z tym samym programem z Malbolge (w poprzednim wpisie). Co ciekawe, jest też obiektowa wersja HQ9+, pod nazwą HQ9++. Instrukcją ++ tworzymy nowy obiekt podklasy :)
Dla chętnych, pod adresem http://www.almnet.de/esolang/hq9plus.php dostępny jest interpreter HQ0+ online :)

Chef

Zdarza się Wam siedzieć po nocach nad skomplikowanym kodem programu wysłuchując protestów swojego żołądka? I ten odwieczny dylemat-odejść od komputera i coś zjeść? Jeśli tak to co? Oto język który być może rozwiąże wasze problemy i zainspiruje do gotowania :)
W tym języku bardziej gotujemy, niż programujemy. Całość programu tworzona jest niczym przepis kulinarny. Podajemy nazwę dania (programu), spisu składników (zmiennych) potrzebnych do naszej potrawy, oraz sposobu przyrządzenia (instrukcje kodu). I tak oto kod33 potatoesdeklaruje nam zmienną ziemniakową o wartości 33 :) A oto cały kod na Hello World: Hello World Souffle. Ingredients. 72 g haricot beans 101 eggs 108 g lard 111 cups oil 32 zucchinis 119 ml water 114 g red salmon 100 g dijon mustard 33 potatoes Method. Put potatoes into the mixing bowl. Put dijon mustard into the mixing bowl. Put lard into the mixing bowl. Put red salmon into the mixing bowl. Put oil into the mixing bowl. Put water into the mixing bowl. Put zucchinis into the mixing bowl. Put oil into the mixing bowl. Put lard into the mixing bowl. Put lard into the mixing bowl. Put eggs into the mixing bowl. Put haricot beans into the mixing bowl. Liquefy contents of the mixing bowl. Pour contents of the mixing bowl into the baking dish. Serves 1.Smakowite, prawda? A wyobraźcie soie przykładowo program "Liczby Fibonacciego z sosem karmelowym" ;)
Dla głodnych tematu polecam poczytać pełny opis języka http://www.dangermouse.net/esoteric/chef.html :)

Ook

Czy jest z nami jakiś orangutan? Jeśli tak, to zaraz poczuje się jak w domu. Często zdarza się, że kod większych projektów przypomina dżunglę znaków, ale dzięki temu językowi przypominać będzie jeszcze bardziej :) Ale zanim przejdę do opisu, przybliżę Wam komu jest on poświęcony. Być może ktoś z Was zna autora książek z cyklu Świata Dysku, Terry'ego Pratchetta. Dla niewtajemniczonych, jest to cykl książek fantasy, ale nastawionych na humor i satyrę naszego (realnego) świata i jego elementów (religii, polityki itp.). Jest w nim magiczna biblioteka, której bibliotearz w skutek wyładowań elektrycznych zamienił się w orangutana :) Jego słownik składa się jedynie z 'Ook' mówionym w różny sposób :)
Dlatego też w tym języku, są jedynie 3 elementy składni:
Ook.
Ook?
Ook!
Które łączy się w pary, dzięki czemu uzyskuje się instrukcje. Sama logika języka jest podobna do BrainFucka:Ook. Ook? - zwiększa wskaźnik o 1 Ook? Ook. - zmniejsza go o 1 Ook. Ook. - zwiększa o 1 bajt w bieżącej pozycji Ook! Ook! - zmniejsza o 1 bajt w bieżącej pozycji Ook. Ook! - pobiera znak i wstawia go w bieżącej pozycji Ook! Ook. - wyświetla znak Ook! Ook? - rozpoczęcie pętli while Ook? Ook! - zamknięcie instrukcji które są w pętli Zgodnie z tradycją, podaję także kod hello world:Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.

LOLCODE

Na koniec język iście dla nastolatków. Przed programowaniem powinniśmy założyć luźne spodnie i wywalić nogi na stół. Całość programu piszemy w...slangu. Dlatego też każdy program zaczynamy przywitaniem HAI. Po tym ładujemy biblioteki przez CAN HAS [biblioteka]?. Dzięki VISIBLE [TEKST] możemy wypisać jakiś tekst a program kończymy pożegnaniem KTHXBYE. Oczywiście mamy do dyspozycji także inne instrukcje takie jak:I HAS A zmienna - deklaracja zmiennej LOL zmienna R wartość – przypisanie wartości do zmiennej BTW komentarz – komentarz INVISIBLE – zwracanie błędu IM IN YR nazwa – rozpoczynanie pętli KTHX – zakończenie pętli GTFO lub ENUF – przerwanie pętli IZ – instrukcja warunkowa Czujecie się dzięki takiemu programowaniu bardziej "na fali"? :)
Jeszcze tylko wzór programu na hello world: HAI CAN HAS STDIO? VISIBLE "HAI WORLD!" KTHXBYE Co ciekawe, powstało też połączenie tego języka z...pythonem. Zainteresowanych zapraszam na http://www.dalkescientific.com/writings/diary/archive/2007/06/01/lolpy... 

Komentarze

0 nowych
  #1 28.04.2011 12:33

"33 potatoes
deklaruje nam zmienną pomidorową o wartości 33 :)"

Chciałeś chyba napisać ziemniakową :)

teletubies1   4 #2 28.04.2011 18:16

Ook > reszta

Orlando   3 #3 28.04.2011 18:59

Poczytałem trochę informacji na stronie 99bottles.net i szczęka mi opadła. Fantazja programistów jest iście nieograniczona. Nie tylko języki niezwykłe do bólu (brakuje mi w zestawie np. Zombie), ale też wykorzystanie popularnych języków w sposób zupełnie niespotykany. Zobaczcie kod programu napisany w PERL. Nawet nie poznałem tego języka!

kubut   18 #4 28.04.2011 19:02

@programmer12346 - fakt, pomyłka :P Poprawione :)

blind-oln   8 #5 28.04.2011 19:51

Ook to mój faworyt. :)

steemm   11 #6 28.04.2011 20:04

LOLCODE to język programowania lolcatów a nie młodzieży i ma to taką a nie inną składnie bo koty nie potrafią mówić po angielsku ;)

fenixproductions   6 #7 29.04.2011 09:16

Malo oryginalny ten Ook. Przypomina Moo za bardzo.

przemek1234   7 #8 29.04.2011 17:49

@Orlando:
Przeczytaj sobie to: http://99-bottles-of-beer.net/language-csharp-107.html

Rozgryść to to masakra, tymczasem C# jest jednym z łatwiejszych języków.

przemek1234   7 #9 29.04.2011 17:50

Jeszcze jest Whirl, w którym są 2 instrukcje: 0 i 1.

soanvig   10 #10 08.11.2011 15:37

Em... HQ9+ w przeciwieństwie do Brainfucka nie jest językiem kompletnym.