Ezoteryczne języki programowania – to nie tylko wróżenie z kodu:)

Java, PHP, Python, C++, C# to znane na całym świecie języki programowania. Ale co ciekawe, oprócz tych popularnych języków istnieją również takie, które graniczą ze światem ezoterycznym i nazywane są ezoterycznymi językami programowania. A dlaczego? Ponieważ oprócz pasjonatów niekonwencjonalnego programowania, prawie ich nikt nie używa! A które języki programowania znajdują się po tej „drugiej stronie”?

INTERCAL – protoplasta ezoterycznych języków programowania

  INTERCAL (CLWNPA, czyli Compiler Language With No Pronounceable Acronym (kompilowany język o niewymawialnym skrócie)) to najprawdopodobniej pierwszy ezoteryczny język programowania, który został stworzony  w 1973 roku przez Dona Woodsa oraz Jamesa M. Lyona. Co ciekawe, jedną z cech tego języka jest uprzejmość: część instrukcji musi zostać poprzedzone słowem kluczowym PLEASE, inaczej zostanie odrzucony. Ale uwaga! Nadużywanie tej formuły może prowadzić do uznania kodu za zbyt lizusowaty, co również może skutkować odrzuceniem.

A jak wygląd prosty program „Hello World”?:

DO ,1 <- #13

        PLEASE DO ,1SUB#1 <- #234

        DO ,1SUB#2 <- #112

        DO ,1SUB#3 <- #112

        DO ,1SUB#4 <- #0

        DO ,1SUB#5 <- #64

        DO ,1SUB#6 <- #194

        DO ,1SUB#7 <- #48

        PLEASE DO ,1SUB#8 <- #22

        DO ,1SUB#9 <- #248

        DO ,1SUB#10 <- #168

        DO ,1SUB#11 <- #24

        DO ,1SUB#12 <- #16

        DO ,1SUB#13 <- #214

        PLEASE READ OUT ,1

        PLEASE GIVE UP

 

A na koniec ciekawostka: nie każda komenda w INTERCALU musi zostać w 100% wykonana – wystarczy, że poprzedzimy ją wyrażeniem np. „%40”, a zostanie wykonana jedynie w 40%.

BrainFuck (BF) – po co komu litery i liczby?

 Kolejnym ezoterycznym językiem programowania jest język o nazwie „BrainFuck” lub w skrócie BF. Język ten został stworzony przez Urbana Müllera około roku 1993 roku i co ciekawe, jest obecnie najbardziej popularnym językiem programowania tego typu. A w jaki sposób programujemy? BrainFuck zawiera jedynie 8 jednoznakowych konstrukcji: <>+-.,[], które oznaczają na przykład zwiększenie lub zmniejszenie wskaźnika o 1. 

A jak wygląda napisany program „Hello World!” w tym języku?

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.——.——–.>+.>.

 

Dziwne, prawda? Wszystkie inne znaki poza wyżej wymienionymi traktowane są jako komentarze.

 

BeFunge – jeden z najlepiej wspieranych ezoterycznych języków programowania

BeFunge to następny ezoteryczny język programowania, w którym stosujemy jedynie kilka znaków, takich jak <>,@,#,+,|.  A jak wygląda program wyświetlający „Hello World!”:

>              v
v"Hello world!"<
> ,,,,,,,,,,,, @

 

GolfScirpt – jeden z najprostszych ezoterycznych języków programowania!

GolfScript jest  jednym z najprostszych ezoterycznych języków programowania. Głównym celem tego języka jest używanie jak najmniejszej ilości klawiszy, tak więc program „Hello World!” wygląda następująco:

„Hello World!”

Proste…….

 

WhiteSpace – biel, biel i tylko biel

  WhiteSpace to ezoteryczny język programowania, którego premiera miała miejsce w 2003 roku. A na czym polega? Każdy zapis instrukcji wymaga użycia tylko tzw. „białych znaków”, a wiec stawianych przez spację, tabulatory, znaki nowej linii. Każdy inny użyty klawisz staje się komentarzem instrukcji:) A jak to wygląda w praktyce? Poniżej prosty kod (na niebiesko – klawisz TAB, zaś na czerwono SPACJA).

 

Shakespeare – być albo nie być!

 Shakespeare to ezoteryczny język programowania stworzony przez Jona Åslunda i Karla Hasselströma. Co ciekawe, cały kod napisany w tym języku przypomina dramaty Szekspira. A dlaczego? Ponieważ główne zmienne muszą mieć nazwy zaczerpnięte z imion bohaterów twórczości Szekspira, na przykład Romeo lub Julia. W innym przypadku wystąpi błąd kompilacji. Cały program dzieli się na akty oraz sceny, które deklaruje się za pomocą cyfr rzymskich, podobnie jak w poniższym kodzie:

Act I: Oszczerstwa Hamleta i wewnętrzna rozterka.Scene I: Podłość Hamleta

 

A w jaki sposób wywołać daną zmienną? To proste – za pomocą wyrazu Enter („zmienna” pod nazwą postaci wchodzi na scenę), zaś Exit oznacza „schodzenie ze sceny”, a więc zakończenie jej działania.

 A jak nadaje się wartości? I tu zaczyna się najlepsza zabawa:

Wartości przypisuje się za pomocą rzeczowników oraz przymiotników, np. candy kojarzy się z czymś miłym, a więc ma wartość 1, zaś spider wzbudza negatywne odczucia, więc przyjmuje wartość -1. Neutralne rzeczowniki posiadają wartość 1. Proste, prawda? A co z przymiotnikami? Przymiotniki podwajają wartość rzeczownika!

A dla ciekawych poniżej znajduje się fragment programu napisanego w tym języku:

Romeo, a young man with a remarkable patience.Juliet, a likewise young woman of remarkable grace.Ophelia, a remarkable woman much in dispute with Hamlet.Hamlet, the flatterer of Andersen Insulting A/S.

                   Act I: Hamlet’s insults and flattery.
                   Scene I: The insulting of Romeo.
[Enter Hamlet and Romeo]
Hamlet:You lying stupid fatherless big smelly half-witted coward! You are asstupid as the difference between a handsome rich brave hero and thyself!Speak your mind!
You are as brave as the sum of your fat little stuffed misused dustyold rotten codpiece and a beautiful fair warm peaceful sunny summer’sday. You are as healthy as the difference between the sum of thesweetest reddest rose and my father and yourself! Speak your mind!
You are as cowardly as the sum of yourself and the differencebetween a big mighty proud kingdom and a horse. Speak your mind.
Speak your mind!
[Exit Romeo]
                   Scene II: The praising of Juliet.
[Enter Juliet]

Malbolge – prawdopodobnie najtrudniejszy język programowania

Malbolge to najprawdopodobniej najtrudniejszy język programowania, w którym instrukcje nigdy nie są zapisywane jednoznacznie. To sam program przyznaje znaczenie poszczególnym znakom, więc nie jesteśmy w stanie przewidzieć efektów. Nazwa języka pochodzi od nazwy 8. kręgu piekła z „Boskiej komedii” Dantego. Co ciekawe, autor tego języka stworzył nieco łatwiejszy język programowania o nazwie DIS (nazwa pochodzi z nazwy 6 kręgu piekła Dantego). A jak wygląda kod programu „Hello World!” napisany w języku Malbolge?:

(=<`:9876Z4321UT.-Q+*)M’&%$H”!~}|Bzy?=|{z]KwZY44Eq0/{mlk** hKs_dG5[m_BA{?-Y;;Vb’rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<

(ten kod w tym języku programowania jest zbyt trudny do napisania przez człowieka, więc powyższy fragment został wygenerowany za pomocą algorytmu genetycznego)

 

I cóż, to koniec artykułu o ezoterycznych językach programowania – miłej zabawy!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *