Obludárium programovacích jazyků – část 2.
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Obludárium programovacích jazyků – část 2.Obludárium programovacích jazyků – část 2.

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

Obludárium programovacích jazyků – část 2.

Google       Google       23. 4. 2012       15 665×

V druhém díle našeho obludária si ukážeme další dva esoterické programovací jazyky. Prvním bude Single Four a ten druhý se jmenuje AAAAAAAAAAAAAA!!!!. Navíc se potom můžete zúčastnit malé soutěže, kterou najdete na konci článku.

Reklama
Reklama

Single Four

Single Four je programovací jazyk, který navrhla Starla Insigna, programátorka s extrémní oblibou čísla 4. Její osobní web můžete najít na FourIsland.com.

Tento jazyk samotný je opravdu téměř nepoužitelný, protože jeho vyjadřovacími znaky jsou pouze mezera a číslice 4. Každá řádka programu potom sestává z volání funkcí, kterým se předávají parametry oddělené mezerou.

Programování v Single Four je tedy opravdovou výzvou. Předdefinováno je celkem 21 základních funkcí (jejich seznam je k nalezení zde). Nejjednodušší je samozřejmě volání funkcí 4 a 44, u ostatních je to problematičtější, protože jejich číslo je nejprve třeba vypočítat.

Uvedeme si dva základní programy.

Ukázka 1

4 4 4 4

Tento program volá funkci číslo 4 (dělení) a dělí číslo 4 číslem 4 a výsledek ukládá do proměnné 4.

Ukázka 2

4 4 44 44
44 44

Tento program nejprve dělí (funkce 4) číslo 4 číslem 44. Výsledkem je 0 (jde o celočíselné dělení) a ta je uložena do proměnné 44. Druhý řádek volá funkci 44, která umožňuje zavolání funkce, která má ID rovné hodnotě v proměnné, která je jí předána jako parametr - tedy v našem případě voláme funkci 0, která ukončuje program.

Hello, world!

Pokud jste se těšili, že se dočkáte popisu programu "Hello, world!", musím vás zklamat. Tento program sice existuje, ale má 485 řádek, a tak by jeho popis nebyl příliš záživný. Každopádně zájemci si jej mohou přečíst u autorky zde, spolu s komentáři na každém řádku.

AAAAAAAAAAAAAA!!!!

Druhý dnešní jazyk má poměrně dlouhý název AAAAAAAAAAAAAA!!!! (pozor neplést s AAAAAAAAAAAA!!!! nebo AAAAAAAAAAAAAA!!, to už nejsou programovací jazyky, to již neznamená zhola nic :-) ). Tento programovací jazyk vytvořil Zzo38, který již má podobných jazyků na kontě desítky. AAAAAAAAAAAAAA!!!! používá poměrně malé množství znaků, konkrétně velké písmeno A, čárku, mezeru a vykřičník. Navíc je možné program zpřehlednit bílými znaky jako novými řádky, ty však interpret dle slov autora přeskakuje.

Pro správné pochopení alespoň základní ukázky programu si musíme nejprve uvést ořezaný seznam příkazů, operátorů a operandů. Pokud budete chtít po dočtení článku svoje znalosti rozšířit, na stránce jazyka najdete další pokročilejší instrukce.

Příkazy

  • AA AAA n! - vypisuje číslo n jako znak
  • AA AAAA AA! - ukončuje program
  • AAA A AAA n! -začít definici subrutiny s názvem n
  • AAAA A AAA! - konec subrutiny
  • AAA A AA AAAA n! - vrátit návratovou hodnotu n
  • AAAAAA n! - zavolání subrutiny n

Operátory, operandy

  • AAAA - číslo 0
  • AAA - číslo 1
  • A - číslo 2
  • AA A - číslo 3
  • AA A, a b - součet čísel a a b
  • AA AA, a b - absolutní hodnota rozdílu (a - b)
  • AAA, a b - součin čísel b
  • AAAAA A n, a - volání subrutiny s názvem n a parametrem a

Z uvedeného výpisu si můžeme všimnout dvou překvapivých faktů. Prvním je to, že AAAAAAAAAAAAAA!!!! je schopné vypisovat pouze znaky, tedy pro výpis číselného výsledku je nutné jednotlivé číslice převádět na znaky. Druhým je to, že v programu si musíme vystačit pouze se čtyřmi čísly - 0, 1, 2 a 3 a jakákoliv jiná čísla musíme získat s jejich pomocí.

Nyní již máme dostatek informací potřebných pro uvedení ukázkového programu, který kupodivu nevypisuje "Hello World", ale pouze "He". Ptáte se proč? Odpověď je snadná - bude nám to stačit, pochopení programu bude už tak dostatečně problematické.

Nakonec ještě uvádím, že jde o kopii programu ze stránky jazyka a pro předvedení alespoň částečného arzenálu jazyka AAAAAAAAAAAAAA!!!! obsahuje i ukázku definice subrutiny, což však není nutností a jejím vynecháním by se program mírně (ale opravdu pouze mírně) zjednodušil. Inu, jdeme na to.

Ukázkový program

AA AAA AA AA, AAA, AAA, AA A AAA, AA A AA A AA A AAA, AA A AA A!
AA AAA AA A, AAA AAAAA A AAAA, AAA!
AA AAAA AA! AAA A AAA AAAA! AAA A AA AAAA AAA,
AA A, AAA AAA, AA A AA A AA A,
AAA AAA, AA A AA A! AAAA A AAA!

Takže, půjdeme hezky postupně po jednotlivých příkazech, abychom se neztratili. Program začíná příkazem výpisu AA AAA, za kterým následuje číslo znaku, který chceme vypsat - pro získání tohoto čísla potřebujeme celý zbytek řádku až po vykřičník, který samotný výpis provádí. AA AA, nám uvádí, že budeme počítat absolutní hodnotu rozdílu. Prvním operandem tohoto rozdílu bude součin(AAA,) součinu^ (další AAA,) čísla tři (AA A) a součinu (AAA,) čísel 3 a 3, a čísla 3 (druhý operand součinu^), a součinu čísel 3 a 3 (druhý operand součinu*). Když si to pomalu a pečlivě přepíšeme do přehlednějšího formátu, první řádek představuje následující:

vypiš(absolutní hodnota rozdílu(součin(součin(3,součin(3,3)),3),součin(3,3)))

Když si to přepočítáme, vyjde nám, že se vypíše znak odpovídající kódu 72 - po nahlédnutí do ASCII tabulky zjistíme, že jde o znak "H". Tak máme polovinu práce za sebou, teď tu druhou.

Na druhém řádku je nejprve uveden příkaz výpisu a ten dostává jako parametr součet (AA A,) čísla 1 (AAA) a výsledku volání subrutiny s číslem 0 (AAAAA A AAAA, AAA). Všimněte si, že subrutině předáváme parametr 1, přestože jej nevyužije, ale neparametrické subrutiny jazyk AAAAAAAAAAAAAA!!!! nepovoluje. 

Třetí řádek nejprve ukončuje program (AA AAAA AA!) a poté začíná definici subrutiny s názvem 0 (AAA A AAA AAAA!). Ta obsahuje příkaz pro vrácení hodnoty (AAA A AA AAAA) výrazu až po nejbližší vykřičník. Zde opět musíme vypočítat součin součtu čísla 1 a součinu čísel 3 a 3 a součtu čísel 1 a součinu čísel 3 a 3. Popis jsem zkrátil, ale opět uvedu celý výraz v přehlednějším formátu:

vrať(součin(součet(1,součin(3,3)),součet(1,součin(3,3))))

Subrutina je zakončena příkazem AAAA A AAA!.

Když si spočítáme výslednou hodnotu, kterou naše subrutina spočítá, zjišťujeme, že jde o číslo 100. Nyní se vrátíme a vzpomeneme si, co dělal druhý řádek - vypisoval znak odpovídající hodnotě součtu čísla 1 a výsledku subrutiny. Tedy vypíše znak ASCII #101 - "e".

Že to nebylo vůbec složité? Troufnete si program rozšířit na výpis celého "Hello, world!"?

Závěr

Dnešní obludárium je za námi, ale na další díl se můžete těšit brzy a opět si rozšíříme naši výstavku o dva esoterické programovací jazyky.

Nakonec ještě vyhlašuji menší soutěž - kdo první zveřejní v komentářích k tomuto článku korektní zdrojový kód v jazyce AAAAAAAAAAAAAA!!!!, který vypisuje text "Hello, world!", bude uveden i se svým výtvorem hned v úvodu příštího dílu obludária!

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
16 hlasů
Google
(fotka) Martin ZikmundAutor je certifikovaný Microsoft Certified Professional Developer a Microsoft Certified Technology Specialist se specializací na C# a ASP.NET + MVC. V současné době spravuje studijní portál Vocableman.com a několik dalších internetových projektů.
Web     Twitter     Facebook     LinkedIn    

Nové články

Obrázek ke článku Open source neznamená „zdarma“

Open source neznamená „zdarma“

Mnoho společností po celém světě, univerzity, vládní organizace a jim podobné dnes používají open source technologie k vytvoření vlastních webových stránek. Tyto technologie se používají čím dál tím více. Jednoduše proto, že je řada poskytovatelů nabízí zcela zdarma. Je to ale opravdu to správné řešení pro všechny? 

Reklama
Reklama
Obrázek ke článku Rádi sledujete obsah streamovacích služeb? Dejte si pozor na pirátské verze Mandaloriana a Netflixu

Rádi sledujete obsah streamovacích služeb? Dejte si pozor na pirátské verze Mandaloriana a Netflixu

Streamovací služby a jejich obsah se v uplynulých měsících těšily velkému zájmu uživatelů, kteří se při pobytu v karanténě chtěli zabavit sledováním filmů a seriálů. Toho bleskově zneužili hackeři, kteří pod názvy oblíbených streamovacích platforem a jejich obsahu maskovali škodlivé soubory. Nejčastěji používali jako návnadu Netflix a seriál The Mandalorian. 

Obrázek ke článku Bionické ruce mění lidem životy. Konference INSPO ukázala nejnovější technologie

Bionické ruce mění lidem životy. Konference INSPO ukázala nejnovější technologie

Bionické myoprotézy rukou jsou ukázkou pokroku, který udělaly za posledních dvacet let technologie pro lidi se zdravotním postižením. Dnešní protézy, které fungují na principu snímání svalových vzorců, umožňují uživatelům operovat s křehkými předměty či provádět úkony složité na kooperaci různých částí těla – ať už jde o hru na hudební nástroje, zavazování tkaniček, nebo třeba pití ze skleničky. Na 20. ročníku konference INSPO se budou zájemci moci naživo seznámit nejen s takzvanou myorukou, ale rovněž s jedním z jejích uživatelů. 

Obrázek ke článku Využití .htaccess na malém webu

Využití .htaccess na malém webu

V dnešní době existuje spoustu cms, které mnohdy ale vůbec nepotřebujeme a stačila by nám pouze základní funkčnost k úpravě url, přesměrování. K tomuto účelu je ideální .htaccess soubor, který nám se všemi těmato úpravami umí pomoct.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý