Whitespace (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 | |
Paradigma | ezoterikus |
Megjelent | 2003 |
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ésA 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ésA 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ésEz 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- ↑ 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ésTovábbi információk
szerkesztés- Whitespace honlap
- Az egyes kiadások hirdetményei a Slashdoton
- Acme::Bleach Perl átalakító modul