Whitespace (programozási nyelv)
ezoterikus programozási nyelv From Wikipedia, the free encyclopedia
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
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
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
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
Kapcsolódó szócikkek
További információk
Wikiwand - on
Seamless Wikipedia browsing. On steroids.