Whitespace

De Viquipèdia
Dreceres ràpides: navegació, cerca
El programa Hola Món! en Whitespace amb la sintaxis destacada
  •  tabs
  •  spaces

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.

Història[modifica | modifica el codi]

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.[3]

Sintaxis[modifica | modifica el codi]

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.

Exemple de codi[modifica | modifica el codi]

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

Vegeu també[modifica | modifica el codi]

Referències[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]