Whitespace (programozási nyelv)

A Wikipédiából, a szabad enciklopédiából
Whitespace
Paradigma ezoterikus
Megjelent 2002
Tervező Edwin Brady, Chris Morris


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 sortöré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.

A nyelv maga egy imperatív, verem alapú programozási nyelv. A virtuális 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 | forrásszöveg szerkesztése]

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ötlete már öt évvel korábban megszületett Bjarne Stroustrup által.

Szintaxis[szerkesztés | forrásszöveg szerkesztése]

A parancsok csak szóközökből, Tabulátorokból, és Sortörés karakterekből állnak. Az adatokat binárisan reprezentálják Tabulátorokkal és Sortörésekkel. Minden egyéb karaktert figyelmen kívül kell hagyni, így használhatók megjegyzésekre. Utasítás tí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 IO utasítás Tabulátor+Sortörés prefixszel

Példakód[szerkesztés | forrásszöveg szerkesztése]

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

                 
       
                               
       
                                 
       
                                 
       
                                               
       
                
       
                            
       
                               
       
                                 
       
                           
       
                                           
       
                   
       
                       
       
                
       
  
üres-sor
üres-sor/EOF

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

  1. Proof of Whitespace Turing-completeness URL accessed July 13, 2007.

Kapcsolódó szócikkek[szerkesztés | forrásszöveg szerkesztése]

További információk[szerkesztés | forrásszöveg szerkesztése]