Movatterモバイル変換


[0]ホーム

URL:


Přeskočit na obsah
WikipedieWikipedie: Otevřená encyklopedie
Hledání

Whitespace

Z Wikipedie, otevřené encyklopedie
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. dubna2003. Veškerásyntaxe jazyka sestává zbílých znaků (mezer, tabulátorů a konců řádek; anglicky se označují jakowhitespace, odtud název), veškeré jiné znaky (písmena, čísla, symboly atd.) jsou ignorovány.

Whitespace jeimperativní jazyk běžící navirtuálním stroji v podobězásobníkového počítače vybavenéhohaldou.

Syntaxe

[editovat |editovat zdroj]

Program je tvořen posloupností příkazů, z nichž každý sestává z řetězce významných symbolů (mezerníkSP, tabulátorTAB, znak konce řádkyLF), 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 aTAB (reprezentující 0, resp. 1) a ukončená znakemLF. 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 aTAB ukončenouLF. Tyto posloupnosti musí být jednoznačné (nesmí se v programu opakovat).

Instrukce pro práci se zásobníkem

[editovat |editovat zdroj]

Na zásobník lze ukládat celá čísla libovolné velikosti.

PříkazParametrVýznam
SPČísloUložit číslo na zásobník.
LF SPZduplikovat číslo na vrcholu zásobníku.
TAB SPČísloOkopírovatn-tou položku zásobníku na jeho vrchol.
LF TABZaměnit horní dvě položky zásobníku.
LF LFZahodit vrchní položku zásobníku.
TAB LFČísloZahoditn položek ze zásobníku těsně pod vrchní (tu ponechat).

Aritmetické instrukce

[editovat |editovat zdroj]

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říkazParametrVýznam
SP SPSčítání
SP TABOdčítání
SP LFNásobení
TAB SPCeločíselné dělení
TAB TABZbytek po celočíselném dělení

Instrukce přístupu k haldě

[editovat |editovat zdroj]

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říkazParametrVýznam
SPZapsat na haldu
TABPřečíst z haldy

Řídící instrukce

[editovat |editovat zdroj]
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 LFKonec podprogramu, návrat za volající instrukci
LF LFKonec programu (povinná instrukce)

Instrukce vstupu a výstupu

[editovat |editovat zdroj]

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říkazParametrVýznam
SP SPVypsat znak na vrcholu zásobníku
SP TABVypsat číslo na vrcholu zásobníku
TAB SPPřečíst znak a uložit ho na adresu uvedenou na vrcholu zásobníku
TAB TABPřečíst číslo a uložit ho na adresu uvedenou na vrcholu zásobníku

Externí odkazy

[editovat |editovat zdroj]
Programovací jazyky
abecední seznam programovacích jazyků
multiparadigmatické

AdaC++Common LispDF#GoOberonPerlPHPPythonRubyRustScalaSwiftTcl (Tk) •Vala

strukturované (procedurální)

AWKCCOBOLDCLForthFortranLuaModula-2 /Modula-3PascalPawnPL/SQL

objektové
funkcionální
dotazovací

LINQSPARQLSQLXQueryXSL (XSLTXSL-FOXPath)

logické
výukové
ezoterické
historické

ALGOLAPLBBASICCPL (BCPL) •JMUMPSPL/ISimula 67SNOBOL

další
skriptovací/strojový kódkompilované/interpretovanéinteraktivní/dávkovéWYSIWYG
Citováno z „https://cs.wikipedia.org/w/index.php?title=Whitespace&oldid=21303844
Kategorie:
Skrytá kategorie:

[8]ページ先頭

©2009-2025 Movatter.jp