Technologie

Językowe zabawy programistów

Grzegorz Marczak
Językowe zabawy programistów
10

„Romeo, czemuż Ty jesteś Romeo!” – wszyscy znamy ten wers z dramatu Szekspira? Zdecydowanie tak. A co gdyby użyć go do programowania? Wynik może być bardzo ciekawy. W dzisiejszym wpisie zaprezentujemy Wam kilka nietypowych języków programowania. Autorką tego wpisu jest Aleksandra Staszewska z Cod...

„Romeo, czemuż Ty jesteś Romeo!” – wszyscy znamy ten wers z dramatu Szekspira? Zdecydowanie tak. A co gdyby użyć go do programowania? Wynik może być bardzo ciekawy. W dzisiejszym wpisie zaprezentujemy Wam kilka nietypowych języków programowania.

Autorką tego wpisu jest Aleksandra Staszewska z Coder's Lab.

Przedstawione poniżej języki zaliczają się do grupy języków ezoterycznych, czyli takich, których celem jest między innymi badanie i demonstracja niekonwencjonalnych metod programowania. Łatwość użycia i zrozumienia kodu schodzi tu na dalszy plan. Część z nich powstała jako parodia istniejących języków programowania, albo po prostu dla zabawy. Zobaczcie co są w stanie wymyślić programiści.

INTERCAL

Powszechnie za pierwszy język ezoteryczny uznaje się INTERCAL, który w 1972 roku stworzyli dwaj studenci Uniwersytetu Princeton – Don Woods i James Lyon (jego oficjalna nazwa to Compiler Language With No Pronounceable Acronym - CLWNPA). INTERCAL jako parodia popularnych w czasie jego powstania języków, wśród których były m.in. Fortran i COBOL.

Jego składnia została tak skonstruowana, aby jak najbardziej utrudnić i zagmatwać pisanie programów. Jedną z jego cech jest uprzejmość – instrukcje należy poprzedzić słowem kluczowym PLEASE. Inaczej program zostanie uznany za nieuprzejmy i odrzucony. Ale uwaga! Jego nadużycie może spowodować, że komputer uzna program za lizusa i również go odrzuci.

Brainfuck

To jeden z najbardziej minimalistycznych, a zarazem kompletnych (da się w nim policzyć dowolną funkcję, którą można policzyć w jakimkolwiek innym języku programowania) języków programowania. Jego twórca, Urban Müller, chciał zbudować język z jak najmniejszą liczbą instrukcji (jest ich tylko 8!) i jak najmniejszym kompilatorem. Brainfuck może i jest minimalistyczny, ale jak sama nazwa wskazuje, programowanie w nim do łatwych nie należy. Zobaczcie jak wygląda przykładowy program napisany w tym języku:

Shakespeare

Teraz będzie ładnie i poetycko – przechodzimy do wspomnianego we wstępie języka. Co więc Romeo i Julia mają wspólnego z programowaniem? Poza tym, że są bohaterami jednego z najsłynniejszych dramatów Williama Szekspira, są także elementami języka programowania stworzonego przez Jona Åslunda i Karla Hasselströma.

Język Shakespeare został zaprojektowany tak, aby napisany w nim program nie przypominał kodu, ale jeden z dramatów Szekspira. Na program składa się tytuł, lista osób dramatu, akty i sceny. Bohaterowie grają rolę zmiennych, zaś długie, poetyckie wypowiedzi reprezentują wyrażenia.

Postaci mogę ze sobą rozmawiać, zmieniając sobie nawzajem wartości i zadawać pytania, które mają charakter instrukcji warunkowych (które pozwalają na wykonanie obliczeń w zależności od tego, czy zdefiniowane przez programistę wyrażenie logiczne jest prawdziwe czy fałszywe). Co ciekawe, wartości określane są przez przymiotniki i rzeczowniki. I tak za pomocą brzyskiego słowa odejmujemy 1 od wartości, a ładne słowo oznacza +1. Programy pisane w tym języku są bardzo długie. Hello World w języku Shakespeare jest bardzo długi. Całość znajdziecie pod tym linkiem. A poniżej fragment:

Whitespace

W językach programowania białe znaki (spacje, tabulatory czy znaki nowej linii) są ignorowane. A gdyby tak nadać im znaczenie? Tego zadania podjęli się Edwin Brady i Chris Morris, którzy 1 kwietnia 2003 roku pokazali światu nowy język: Whitespace. Ani nazwa, ani data nie są tu przypadkowe. Whitespace wykorzystuje białe znaki, które są znaczące, a wszelki tekst jest tylko komentarzem. Jak zatem odczytać program w tym języku? Ba! Jak go napisać? Bardzo pomocne są tutaj edytory tekstu, które potrafią kolorować składnię (a w szczególności właśnie białe znaki). Zobaczcie jak wygląda Hello World w Whitespace (oczywiście z kolorowaniem):

LOLCODE

Inspiracją do stworzenia tego specyficznego języka był internetowy slang internetowego fenomenu, „lolcatów” (zabawne zdjęcia kotów, z jeszcze bardziej zabawnymi tekstami pisanymi w uproszczonym języku angielskim). LOLCODE stworzył pracownik Wydziału Informatyki na Uniwersytecie Lancaster w 2007 roku.

W tym języku każdy program rozpoczyna się od HAI (który jest slangowym odpowiednikiem angielskiego „hi”). Inne komendy to m.in. LOL, która przypisuje wartość do zmiennej czy BTW, która oznacza komentarz. Gdybyście chcieli zgłębić ten zabawny język, kliknijcie tutaj.

Arnold C

Arnold Schwarzenegger idolem programistów? Tak chyba możemy określić poglądy twórcy języka Arnold C, fińskiego programisty, Lauri Hartikka. Słowa kluczowe w kodzie zostały tu zastąpione cytatami znanymi z filmów ze Schwarzeneggerem tzw. „one liners”. Co ważne, zawsze muszą być pisane wielkimi literami. Każdy program musi zaczynać się IT’S SHOWTIME, a w kodzie znajdziecie m.in. TALK TO THE HAND czy YOU HAVE BEEN TERMINATED i oczywiście kultowe GET TO THE CHOPPER.

Arnold C, podobnie jak Brainfuck jest językiem kompletnym – i zwykle wzbudzającym uśmiechy zarówno u programistów, jak i osób nie będących nimi.

Malbolge

Jednym z najdziwniejszych języków programowania jest Malbolge. Stworzony w 1998 roku, swoją nazwę zawdzięcza ósmemu kręgowi piekła u Dantego – co już daje nam pewne wskazówki czego możemy się spodziewać. Dodajmy do tego, że od jego stworzenia, do przygotowania pierwszego działającego w nim programu minęły dwa lata (!). Dlaczego do przygotowania, a nie do napisania w nim pierwszego programu? Otóż nie został on przez nikogo ręcznie stworzony, a wygenerowany specjalnym algorytmem.

Cała konstrukcja języka zakłada, ze ma on być jak najtrudniejszy dla programisty – za jego słabość uznaje się więc fakt, że możliwe jest napisanie w nim działającego programu. Malbolge zakłada pewne ograniczenia pamięci komputera, więc nie zalicza się do języków kompletnych. Pokazuje jednak jak zakręcone bywają tory myślenia twórców języków programowania.

„Piekielny” język zamyka nasze zestawienie. Ale ezoterycznych języków programowania jest dużo więcej! I ciągle powstają nowe. Czy macie swój ulubiony, który dodalibyście do tej listy?

O Coder’s Lab

Coder`s Lab to pierwsza w Polsce Szkoła Programowania, która opiera się na nowoczesnych kursach typu bootcamp. Prowadzi kursy, po których fani IT zostają Junior Programistami Ruby on Rails (stacjonarne i weekendowe), krótkie szkolenia HTML i CSS oraz „Jak efektywnie współpracować z programistami?” dla osób pracujących w branży IT. Niebawem uruchomi kursy WordPress, Python, iOS i Android.

Więcej informacji na stronie www.coderslab.pl

Hej, jesteśmy na Google News - Obserwuj to, co ważne w techu

Więcej na tematy:

coderslab