A címben szereplő egyenlet nem vicc, és nem is puszta klikkcsali. A Brainfuck (szabad fordításban: agyf*sz) egy valódi programozási nyelv, noha egyáltalán nem nevezhető hagyományosnak...

hackerman.jpeg

Biztosan sokan tisztában vannak vele, hogy a számítógép rábírása arra, hogy azt tegye, amit mondunk neki különböző, a gép számára értelmezendő jelkészletek, más néven programozási nyelvek, vagy rövidebben programnyelvek segítségével történik. Ezek a nyelvek egész nyelvcsaládokká rendszerezhetőek különböző szempontok szerint: keletkezésük ideje; a hardveres és szoftveres környezet, amiben a programok futnak; az adott nyelv és a számítógép közvetlen kódkészlete, azaz a gépi kód (a számítógép anyanyelve) közé iktatott értelmező rétegek milyensége; más nyelvekkel való hasonlatosság, a nyelvben megvalósuló koncepciók; technikai adatok stb.

C++, PHP, JavaScript, Turbo Pascal, Perl, ADA, BASIC, Assembly… A sort elég hosszasan folytatni tudnám, nem ritka, hogy egy adott nyelvnek különböző dialektusai is léteznek. A legtöbb nyelvet azzal a céllal hívják életre, hogy valamilyen szempontból, valamilyen új környezetben, vagy valamilyen egyéb új technológia fényében jobb, szebb, hatékonyabb, megbízhatóbb, kényelmesebb fejlesztőeszközzé váljon.

Nem így az ezoterikus programnyelveket! Ezeket inkább azért hozzák létre, hogy mások legyenek…

Brainfuck, Omgrfofl, Shakespear, Var'aq, stb., a programnyelvek hippijei rockerei punkjai emosai hipszterei ezek! A létrejöttük mögött álló motiváció lehet valamiféle elméleti felvetés igazolásának vágya, vagy egy jó vicc elsütésének a lehetősége. Legyen szó extravaganciáról, kulturális tiszteletadásról, művészi hajlamról vagy bármi egyébről, a lényeg, hogy nem a fősodrú, hasznos” programozási nyelvek tartoznak ide, hanem azok, amelyek valamiért kilógnak a sorból. A legtöbbjük tökéletesen alkalmas számítógépek programozására, még ha nem is a megszokott módon, vagy nem is éppen azzal a céllal készültek, hogy ezt a feladatot könnyebbé tegyék.

Ezekből az experimentális koncepciókból válogattam össze egy párat, jó szórakozást a sorozat első részéhez!

  1. INTERCAL

    Az első ezoterikus progamnyelv, 1972-ből származik. Az INTERCAL szó a „Compiler Language With No Pronounceable Acronym” elnevezésből fakad, amely Kiejthető Betűszó Nélküli Fordító Nyelvet jelent…

    A nyelv a 60-as években bevett programozási technikák és nyelvek paródiája. Olyan utasításokat/szavakat tartalmaz mint a PLEASE - kérlek vagy MAYBE - talán. A használati utasítás se kutya, olyan mondatokkal mint a következő:

    Vigyázat! Semmilyen körülmények közt ne zavarjuk össze a hálót az interleave operátorral, kivéve ha a körülmények zavarosak!

    A programozásban gyakran használt időzőjel karaktert pedig az általános iskolán kívül egyedül itt merik igazi nevén nevezni, nyuszifülnek hívják ugyanis. :)

  2. Chef

    A Chef nyelv komolyan veszi a nevében vállaltakat. A benne írt programok ugyanis receptek formáját öltik. Igen, receptekét. A weboldaluk szerint, a recept-programok nem elég, hogy működőképesek, tehát futtatásuk esetén az elvárt eredményt produkálják, de ugyanakkor könnyen elkészíthetőnek és ízletesnek is kell lenniük...

    programozo-fozocske.jpg
  3. Velato

    Ezen csodálatos nyelv (hang)sorai nem szöveges nyelven íródnak, ehelyett MIDI, tehát zenei fájlok hordozzák a Velatoban írt program forrását. A hangok magassága és sorrendje kódolja az egyes utasításokat, melyeket a fordító gépi kóddá tud alakítani. A nyelvet úgy tervezték meg, hogy az utasítások sorrendje flexibilisen változtatható legyen, ezért az alkotók rendelkeznek némi szabadsággal programjuk hangzása felett. Megfigyelhető egy jazzes tendencia a Velato programok harmóniái között.

    All That Jaxx :)
  4. Brainfuck

    brainfuck.jpg
    Brainfuck - Villámgyors fejlesztés mindössze 3 bit segítségével!

    A Brainfuck vagy ahogy néha a megbotránkoztatást elkerülendő írni szokták B****fuck  azért született meg Urban Müller fejében, mert olyan programnyelvet akart létrehozni, melyre a lehető legkisebb fordítóprogramot tudja írni. A nyelvet először Amiga típusú számítógépén implementálta 1993-ban.

    A fordító az a program, ami az adott nyelvben írt utasításokat közvetlenül futtatható gépi kóddá alakítja át. Erre a folyamatra mondjuk, hogy a program lefordul, és a magasabb szintű programnyelven írt, univerzális és emberek számára könnyeben értelmezhető kód az adott gép processzorcsaládja számára is értelmezhető bináris gépi kóddá lesz.

    Müller azt akarta tehát, hogy minél kevesebb utasítás és minél egyszerűbb rendszer számontartásával lehessen futtatható kódot generálni az általa kiötlött nyelvből.

    Ennek eredménye egy nem csak utasítás készletében, de az utasításokat jelző „szavakban is megjelenő minimalizmus, és egy teljesen letisztult, noha az ember számára elég nehezen értelmezhető nyelv lett. A nyolc darab utasítást egy-egy karakter jelképezi csupán. Szűkszavúsága ellenére minden más nyelvben is leírható program megvalósítható Brainfuck nyelven is, tudományosabban szólva a nyelv Turing-teljes.

    Számtalan dialektusa létezik, melyekben az utasítások ennél szofisztikáltabb szavakat kapnak, mint például az azokat gorilla-hangutánzó tagokkal helyettesítő Ook!.

    És hogy, hogyan is néz ki egy Brainfuck nyelven írt program? Hát így:

    ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.

    Ez a kód csupán kiírja a képernyőre a "Hello World" szöveget. Így egy sorba szedve még ezoterikusabb hatást kelt, de akit érdekel egységekre bontva, illetve megismerkedne az egyes karakterek jelentésével is, annak ajánlom a Wikipedia ide vonatkozó részét!

  5. Var'aq 

    Ki ne tudná kik azok a klingonok? Najó, talán mégis akadnak páran, úgyhogy az ő kedvükért elmondom, hogy a Star Trek science-fiction franchise számtalan kitalált idegen civilizációja közül az egyik leggyakrabban előkerülő fajról beszélünk. A klingon faj mind az alkotók, mind pedig a rajongók által a legjobban dokumentált idegenek egyike.

    klingon-szotar.jpg
    Ez például a hivatalos klingon - angol szótár

    A Var'aq egy klingon programnyelv, de fontos tisztázni, hogy nem egy a sorozatban felbukkanó, csupán teoretikusan létező nyelvről beszélünk, hanem egy valóban életre hívott, működő programozási nyelvről. Az ötlet akkor pattant ki az alkotó Star Trek rajongók fejéből, mikor feltették maguknak a kérdést, hogy vajon milyen nyelvben programozhatnak a klingonok.

    klingonok-windows.jpeg
    A klingonok nem használnak Windowst!

    A Var'aq nem jelent semmit klingonul, ehelyett a szó egy feltételezett klingon tudós nevéből fakad, hasonlatosan például olyan földi programnyelvekhez, mint a Pascal vagy az Ada.

    A történethez hozzátartozik, hogy Star Trek a számítógépes/tudományos geek kultúra egyik alapkövét jelenti. Maga a klingon nyelv pedig egy Marc Okrand nevű nyelvész kreálmánya, és komoly rajongótáborral bír. A populáris kultúra és a kocka-identitás számtalan találkozó pontja közül a Var'aq talán a legszellemesebbek egyike.

    Qapla'!

  6. TwoDucks 

    Röviden, a TwoDucks egy olyan programnyelv, amely lehetővé teszi, hogy a használója utazzon az időben, és megváltoztasson dolgokat a programon belül… Sajnos a jelenleg használatos computerekkel ez a kicsinység nem kivitelezhető, de a TwoDucks-t úgy alkották meg, mintha az időben előre-hátra számolni képes gép kérdése megoldott lenne.

    (Alkotója létrehozta egyébként a Magic: The Gathering kártyajáték dekképítésén alapuló programnyelvet is.)

    Nem is mondanék többet, nézzünk inkább KUNG FURY-t!

  7. Omgrfofl és LOLCODE

    lolcode.jpg
    A LOLCODE logója

    Az ezen a nyelveken írt programok utasításaikat az internet-szlengből kölcsönzik… Az Omgrfofl-ben írt Hello World program többet mond minden szónál: 

    w00t a Hello, World! program by poiuy_qwert
    lol iz 72
    rofl lol
    lol iz 101
    rofl lol
    lol iz 108
    rofl lol
    rofl lol
    lool iz 111
    rofl lool
    loool iz 44
    rofl loool
    loool iz 32
    rofl loool
    loool iz 87
    rofl loool
    rofl lool
    lool iz 114
    rofl lool
    rofl lol
    lol iz 100
    rofl lol
    lol iz 33
    rofl lol
    stfu

    Mit lehet ehhez hozzá tenni? Maximum annyit... LOL!

Remélem, sikerült tágítanom a programozásról való gondolkodás kereteit ezeknek a kreatív nyelveknek a bemutatásával. Az ezoterikus programnyelvek teljes listája persze ennél jóval hosszabb, és folyamatosan bővül. A gyűjtést második része itt található!