Whitespace (programozási nyelv)

ezoterikus programozási nyelv

A Whitespace egy ezoterikus programozási nyelv, amelyet Edwin Brady és Chris Morris fejlesztettek ki a Durhami Egyetemen. 2003. április 1-jén (bolondok napján) adták ki. A legtöbb nyelvvel ellentétben, amelyek gyakran figyelmen kívül hagyják a whitespace-eket, a Whitespace értelmező figyelmen kívül hagy minden nem whitespace karaktert. Csak a szóköz, tabulátor és a soremelés karaktereket veszi figyelembe a szintaxis. Ennek a tulajdonságnak érdekes következménye, hogy egy másik nyelv whitespace karakterei könnyedén tartalmazhatnak egy Whitespace programot. Akár úgy is, hogy ugyanazt a programot valósítják meg.

Whitespace
Paradigmaezoterikus
Megjelent2003
TervezőEdwin Brady, Chris Morris
Hatással volt ráBrainfuck
Weboldal

A nyelv maga egy imperatív, verem alapú programozási nyelv. A virtuális számítógép, amin a program fut, egy veremmel és egy halommal rendelkezik. A programozó szabadon rakhat a verembe tetszőleges méretű egészeket (jelenleg lebegőpontos számok nincsenek implementálva). Használhatja ezenkívül a halmot is a változók és adatszerkezetek tárolóhelyéül.

A Whitespace-t viccesen a titkosított programozás nagy nyelvének tartják, mivel a fontos kódot ki lehet nyomtatni egy papírlapra, és megbízhatóan tárolható, anélkül, hogy azon kellene aggódni, hogy bárki elolvassa, vagy visszafejti. Beleértve az illetékteleneket, de az illetékeseket is.

A Whitespace bizonyítottan Turing-teljes.[1]

Történelem szerkesztés

A Whitespace-t Edwin Brady és Chris Morris készítette 2002-ben. 2003. április 1-jén a Slashdot kiadott egy ismertetőt erről a programozási nyelvről. Ugyanebben az évben implementálták egy interpreterét is. A nyelv alapötletét Bjarne Stroustrup már öt évvel korábban felvetette.

Szintaxis szerkesztés

A parancsok csak szóközökből, tabulátorokból és soremelés karakterekből állnak. Az adatokat binárisan reprezentálják tabulátorokkal és szóközökkel. Minden egyéb karaktert figyelmen kívül kell hagyni, így használhatók megjegyzésekre.

Utasítástípusok:

  • 4 veremkezelő utasítás szóköz prefixszel
  • 5 aritmetikai utasítás tabulátor+szóköz prefixszel
  • 2 halomkezelő utasítás tabulátor+tabulátor prefixszel
  • 7 vezérlő utasítás (a címkedefiníciót is beleértve) sortörés prefixszel
  • 4 I/O utasítás tabulátor+sortörés prefixszel

Példakód szerkesztés

Ez a program kiírja a 'Hello, Vilag!' üzenetet. A whitespace-ek színezése: Szóköz, Tabulátor Az L a soremelés karaktert helyettesíti.

S S S T	S S T	S S S L

T L S S S S S T T S S T S T L T L S S S S S T T S T T S S L T L S S S S S T T S T T S S L T L S S S S S T T S T T T T L T L S S S S S T S T T S S L T L S S S S S T S S S S S L T L S S S S S T S T S T T S L T L S S S S S T T S T S S T L T L S S S S S T T S T T S S L T L S S S S S T T S S S S T L T L S S S S S T T S S T T T L T L S S S S S T S S S S T L T L S S L L L

Jegyzetek szerkesztés

  1. A Turing-teljesség bizonyítása. Durham University Computing Society. [2014. október 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2007. július 13.)

Kapcsolódó szócikkek szerkesztés

További információk szerkesztés