Møt Whitespace: Verdens mest upraktiske programmeringsspråk?

Formidling: Din støtte hjelper med å holde nettstedet i gang! Vi tjener et henvisningsgebyr for noen av tjenestene vi anbefaler på denne siden.


Whitespace er et esoterisk programmeringsspråk utviklet av Edwin Brady og Chris Morris ved University of Durham, England. I Whitespace har bare mellomrom, tabulatorer og linjematinger mening, mens alle andre tegn som ikke er mellomrom ignoreres av tolken.

Hvis dette høres rart og upraktisk ut, ja, det er det! Faktisk det’s hele poenget med Whitespace.

Kort historie

Brady og Morris fikk ideen om å lage Whitespace under en samtale på en pub, i slutten av 2002. Siden de fleste programmeringsspråk ignorerer whitespace-karakterer, vurderte utviklerne dette som urettferdig for disse medlemmene i tegnsettet, og bestemte seg for å opprette Whitespace. Vi bør sannsynligvis merke oss at de fleste programmeringsspråk ikke er designet på puber, så dette er bare en annen faktor som gjør Whitespace unik.

Whitespace ble utgitt 1. april 2003, så i starten virket det som en altfor forseggjort April Fool’s vits. Utgivelsesdatoen 1. april var imidlertid rent tilfeldig. Egentlig viste utgivelsesdatoen seg ganske nyttig, ettersom den vakte mye oppmerksomhet på Slashdot da den offisielt ble kunngjort.

Funksjoner

Whitespace er et tvingende, stabilt-basert programmeringsspråk som støtter heltal. Støtte for antall flytende punkter implementeres ikke. I sin syntaks er det bare mellomromstegn – mellomrom, fane og linjefôr som har betydning, alle andre tegn blir ignorert. Som en konsekvens kan Whitespace-programmer bli inneholdt i mellomromstegnene til et program skrevet på et annet språk, eller i en ren tekstfil.

I teorien kunne en programmerer skrive en roman rundt Whitespace-koden sin – koden vil fortsatt fungere, men de fleste ville bare se romanen, ikke den underliggende Whitespace-koden.

Whitespace er et esoterisk programmeringsspråk (esolang), og er skapt for å teste grensene for design av programmeringsspråk for datamaskiner, og ikke beregnet på bruk for mainstream programmering. Det er ganske enkelt et bevis på et konsept, med svært begrensede praktiske anvendelser, siden det’brukes knapt i den virkelige verden.

Imidlertid, som en teknisk demonstrant designet for å bevise at du faktisk kan ha et fungerende programmeringsspråk som er basert på et mellomrom i stedet for tegn, fungerer det definitivt. Dessverre var ikke Whitespace’t designet for noe mer enn det. Det var en forseggjort teknisk demo, ikke et programmeringsspråk designet for praktiske applikasjoner.

syntax

Kommandoer i Whitespace, så vel som hele koden, er sammensatt av sekvenser med mellomrom, tabulatorstopp og linjeinnmating. Tab-space-space-space utfører for eksempel aritmetisk tilsetning av de to øverste elementene på stabelen. Koden skrives i form av et instruksjonsmodifiseringsparameter (IMP) etterfulgt av operasjonen. Whitespace har følgende IMP-er: “rom” – stabling manipulering, “tab-plass” – aritmetikk, “tab-fanen” – haug tilgang, “linjeskift” – flytkontroll, “tab-linjeskift” – inngang / utgang.

Data er representert i en binær form, ved bruk av mellomrom for 0 og faner for 1, etterfulgt av en linjeinnmatning, for eksempel mellomrom-plass-plass-tabell-tabell-plass-linje-mating er det binære tallet 000110, som er 6 i desimal.

Følgende eksempel teller fra 1 til 5 og skriver ut tallene fra 1 til 5, hvor “S” representerer plass, “T” – fane, og “L” – linjeskift:

SSSTL LSSSTSSSSTTL SLS TLST SSSTSTSL TLSS SSSTL TSSS SLS SSSTTSL TSST LTSSTSSSTSTL LSSSTSSSTSTL SLL LLL

Utgangen fra koden over er:

1 2 3 4 5

Hva med å skrive Hello World i Whitespace? Vel, det vil kreve at du koder stort sett hver eneste bokstav og deg’d ender opp med omtrent 950 forekomster av plass, fane og linjematning. Den’er definitivt ikke et eksempel vi kan ta med i introduksjonen til Whitespace, men i tilfelle du’er du interessert, og du har for mye fritid på hendene, kan du sjekke det her.

Whitespace-ressurser

Det er nesten ingen nytte i å lære Whitespace, men hvis du liker konseptet og ønsker å lære mer om det, eller prøv noen eksempler, kan du sjekke ut følgende ressurser:

  • Det offisielle Whitespace-nettstedet er frakoblet, så det eneste alternativet ditt er å sjekke ut det arkiverte Wayback Machine-innholdet med forklaringer, opplæringsprogrammer og eksempler på Whitespace programmeringsspråk i aksjon..
  • Du kan prøve noen få eksempler ved å bruke Whitelips IDE Online Whitespace-kompilatoren, som laster inn “Hei Verden” eksempel som standard. Du vil bli overrasket over hvor lang tid eksemplet er, for i Whitespace må du definere hvert tegn én etter én ved å bruke ASCII-koder.

Konklusjon

Som programmeringsspråk er Whitespace så eksotisk som det blir, selv etter esoteriske språkstandarder.

Mens det’er ikke et programmeringsspråk folk faktisk bruker for noe produktivt, det’er en smart mental øvelse og det fungerer som bevis på at du kan gjøre nesten hva som helst til kode, i det minste i teorien.

Når du har prøvd det og funnet ut hvordan det fungerer, du’er mer eller mindre ferdig med Whitespace, siden du virkelig kan’t bruk det til noe alvorlig. Vel, i hvert fall ikke med mindre du har mye tid å drepe og ikke noe bedre å gjøre.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me