náhled|Ukázka programu ve Whitespace s barevným zvýrazněním syntaxe Whitespace je humorný ezoterický programovací jazyk vytvořený Edwinem Bradym a Chrisem Morrisem, představený 1. dubna 2003. Veškerá syntaxe jazyka sestává z bílých znaků (mezer, tabulátorů a konců řádek; anglicky se označují jako whitespace, odtud název), veškeré jiné znaky (písmena, čísla, symboly atd.) jsou ignorovány.
Whitespace je imperativní jazyk běžící na virtuálním stroji v podobě zásobníkového počítače vybaveného haldou.
Syntaxe Program je tvořen posloupností příkazů, z nichž každý sestává z řetězce významných symbolů (mezerník SP, tabulátor TAB, znak konce řádky LF), jiné symboly jsou zcela ignorovány. Před každým příkazem je označení typu příkazu: Označení Typ příkazu SP Manipulace se zásobníkem TAB SP Aritmetický příkaz TAB TAB Práce s haldou LF Řídící příkazy TAB LF Vstup/výstup
Čísla (která se vyskytují jako parametry některých příkazů) mohou být libovolně velká, zadávají se v binárním zápisu jako posloupnost znaků SP a TAB (reprezentující 0, resp. 1) a ukončená znakem LF. První znak určuje znaménko – číslo začínající SP je kladné, číslo začínající TAB je záporné.
Návěští jsou tvořena libovolnou posloupností znaků SP a TAB ukončenou LF. Tyto posloupnosti musí být jednoznačné (nesmí se v programu opakovat).
Instrukce pro práci se zásobníkem Na zásobník lze ukládat celá čísla libovolné velikosti. Příkaz Parametr Význam SP Číslo Uložit číslo na zásobník. LF SP — Zduplikovat číslo na vrcholu zásobníku. TAB SP Číslo Okopírovat n-tou položku zásobníku na jeho vrchol. LF TAB — Zaměnit horní dvě položky zásobníku. LF LF — Zahodit vrchní položku zásobníku. TAB LF Číslo Zahodit n položek ze zásobníku těsně pod vrchní (tu ponechat).
Aritmetické instrukce Ve Whitespace se pracuje pouze s celými čísly, v aktuální verzi nejsou čísla s plovoucí řádovou čárkou podporována.
Aritmetické instrukce provedou zadanou operaci se dvěma vrchními čísly, která ze zásobníku vyjmou, a výsledek uloží na zásobník. První (hlouběji) uložené číslo je považováno za levý operand. Příkaz Parametr Význam SP SP — Sčítání SP TAB — Odčítání SP LF — Násobení TAB SP — Celočíselné dělení TAB TAB — Zbytek po celočíselném dělení
Instrukce přístupu k haldě Halda je adresována celými čísly uloženými na vrcholu zásobníku. Při čtení je adresa na zásobníku nahrazena hodnotou z haldy, při zápisu je adresa a hodnota ze zásobníku přečtena a vyjmuta. Příkaz Parametr Význam SP — Zapsat na haldu TAB — Přečíst z haldy
Řídící instrukce Příkaz Parametr Význam SP SP Návěští Návěští – označení místa v programu SP TAB Návěští Volání podprogramu SP LF Návěští Nepodmíněný skok na návěští TAB SP Návěští Podmíněný skok – pokud je na vrcholu zásobníku nula TAB TAB Návěští Podmíněný skok – pokud je na vrcholu zásobníku záporné číslo TAB LF — Konec podprogramu, návrat za volající instrukci LF LF — Konec programu (povinná instrukce)
Instrukce vstupu a výstupu Whitespace obsahuje instrukce umožňující komunikaci s uživatelem. Instrukce pro vstup ukládají přečtené hodnoty do haldy, na adresu obsaženou na zásobníku. Příkaz Parametr Význam SP SP — Vypsat znak na vrcholu zásobníku SP TAB — Vypsat číslo na vrcholu zásobníku TAB SP — Přečíst znak a uložit ho na adresu uvedenou na vrcholu zásobníku TAB TAB — Přečíst číslo a uložit ho na adresu uvedenou na vrcholu zásobníku
Externí odkazy
Domácí stránka Oznámení na Slashdotu
Kategorie:Programovací jazyky Kategorie:Ezoterické programovací jazyky