Whitespace

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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
SPManipulace se zásobníkem
TAB SPAritmetický příkaz
TAB TABPráce s haldou
LFŘídící příkazy
TAB LFVstup/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. +more 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říkazParametrVýznam
SPČísloUložit číslo na zásobník. +more
LF SP-Zduplikovat číslo na vrcholu zásobníku.
TAB SPČísloOkopí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ČísloZahodit 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. +more

PříkazParametrVý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. +more

PříkazParametrVýznam
SP-Zapsat na haldu
TAB-Přečíst z haldy
.

Řídící instrukce

PříkazParametrVýznam
SP SPNávěštíNávěští - označení místa v programu
SP TABNávěštíVolání podprogramu
SP LFNávěštíNepodmíněný skok na návěští
TAB SPNávěštíPodmíněný skok - pokud je na vrcholu zásobníku nula
TAB TABNá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. +more

PříkazParametrVý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

[url=https://web. archive. +moreorg/web/20050403024842/http://compsoc. dur. ac. uk/whitespace/index. php]Domácí stránka[/url] * [url=http://developers. slashdot. org/article. pl. sid=03/04/01/0332202]Oznámení na Slashdotu[/url].

Kategorie:Programovací jazyky Kategorie:Ezoterické programovací jazyky

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top