Whitespace

llenguatge de programació

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.

Infotaula de llenguatge de programacióWhitespace
Tipusllenguatge de programació esotèric i llenguatge de programació Modifica el valor a Wikidata
Data de creació1r abril 2003 Modifica el valor a Wikidata
Epònimespai blanc Modifica el valor a Wikidata
Paradigma de programacióprogramació esotèrica Modifica el valor a Wikidata
Influenciat perBrainfuck Modifica el valor a Wikidata
Pàgina webcompsoc.dur.ac.uk… Modifica el valor a Wikidata
El programa Hola Món! en Whitespace amb la sintaxi destacada
  tabs
  spaces

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

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.

Sintaxi

modifica

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

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

Referències

modifica
  1. «Whitespace». Arxivat de l'original el 2008-03-31. [Consulta: 17 gener 2011].
  2. «New Whitespace-Only Programming Language - Slashdot» (en anglès). [Consulta: 16 desembre 2017].

Enllaços externs

modifica