![]() | |
Tipus | llenguatge de programació esotèric i llenguatge de programació ![]() |
---|---|
Data de creació | 1r abril 2003 ![]() |
Epònim | espai blanc ![]() |
Paradigma de programació | programació esotèrica ![]() |
Influenciat per | Brainfuck ![]() |
Pàgina web | compsoc.dur.ac.uk… ![]() |
El Whitespace és un llenguatge de programació esotèric desenvolupat per Edwin Brady i Chris Morris a la Universitat de Durham (desenvolupadors, també, del llenguatge de programació Kaya). Es va fer públic l'1 d'abril del 2003 (April Fool's Day). El seu nom fa referència al caràcters d'espai. Al contrari de gairebé tots els llenguatges de programació, que ignoren o donen molt poc significat a la majoria de caràcters d'espai, l'interpretador de Whitespace ignora tots els caràcters que no són d'espai. Només tenen significat els espais, les tabulacions i els salts de línia[1] Una conseqüència interessant d'aquesta propietat és que un programa en Whitespace pot estar dins els caràcters d'espai d'un programa escrit en un altre llenguatge, convertint el text en un poliglot.
El llenguatge en si mateix és llenguatge basat en l'stack imperatiu. La màquina virtual en la que s'executa el programa té una stack i un heap. El programador és lliure d'empilar enters d'amplades arbitràries a l'stack (actualment no hi ha implementació per a nombres decimals) i també pot accedir al heap com a lloc permanent per a emmagatzemar dades i estructures de dades.
El Whitespace va ser creat per Edwin Brady i Chris Morris el 2002. Slashdot va fer una ressenya d'aquest llenguatge de programació l'1 d'abril del 2003.[2] Aquell mateix any, es va implementar en Whitespace un interpretador per a ell.
La idea d'usar caràcters d'espai com a operadors per al llenguatge C++ la va suggerir Bjarne Stroustrup com a broma cinc anys abans.
Les comandes estan compostes de seqüències d'espais, tabulacions i salts de línia. Per exemple, tabulació-espai-espai-espai afegeix els dos elements de dalt de tot a la stack. Les dades estan representades en binari usant espais (0) i tabulacions (1), seguides d'un salt de línia, per exemple espai-espai-espai-tabulació-espai-tabulació-tabulació és el número 11. Qualsevol altre caràcter és ignorat, per tant, es poden fer servir com a comentaris.
Aquest codi imprimeix "Hello World!". S'han pintat els fons dels caràcters d'espai amb diferents colors i s'han marcat amb separadors, ja que en realitat són invisibles. ( Space , Tab )
| | | |
| | | | | | | | | | |
| | | | | | | |
| | | | | | | | | | |
| | | | | | | | |
| | | | | | | | | | |
| | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
| | | | |
| | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | |
| | | |
| | | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
| | | | | | | |
| | | | | | | | | | |
| | | | | | | |
| | | | | | | | | | |
| | | | |
| |
| | | | | | |
línia-en-blanc
| | | | | |
línia-en-blanc
| | | | | |
línia-en-blanc
| | | | | |
| |
| | | | | | |
| | | | |
línia-en-blanc
| | | |
línia-en-blanc
| | | | | |
línia-en-blanc
línia-en-blanc/EOF