Maak kennis met Whitespace: ‘s werelds meest onpraktische programmeertaal?

Openbaarmaking: Uw steun helpt de site draaiende te houden! We verdienen een verwijzingsvergoeding voor sommige van de services die we op deze pagina aanbevelen.


Whitespace is een esoterische programmeertaal die is ontwikkeld door Edwin Brady en Chris Morris aan de Universiteit van Durham, Engeland. In Whitespace hebben alleen spaties, tabbladen en linefeeds betekenis, terwijl alle andere niet-witruimte-tekens door de tolk worden genegeerd.

Als dit raar en onpraktisch klinkt, ja, dat is het! Dat is zelfs zo’s het hele punt van Witruimte.

Korte geschiedenis

Brady en Morris kwamen op het idee om eind 2002 Whitespace te maken tijdens een gesprek in een pub. Aangezien de meeste programmeertalen witruimtetekens negeren, vonden de ontwikkelaars dit oneerlijk tegenover deze leden van de tekenset en besloten ze om Whitespace te maken. We moeten waarschijnlijk opmerken dat de meeste programmeertalen niet zijn ontworpen in pubs, dus dit is gewoon een ander feit dat Whitespace uniek maakt.

Whitespace werd uitgebracht op 1 april 2003, dus in eerste instantie leek het een overdreven uitgebreide April Fool’s Grap. De releasedatum van 1 april was echter puur toevallig. De releasedatum was eigenlijk best handig, omdat het veel aandacht trok op Slashdot toen het officieel werd aangekondigd.

Kenmerken

Whitespace is een imperatieve, op een stapel gebaseerde programmeertaal die gehele getallen ondersteunt. Ondersteuning voor getallen met drijvende komma is niet geïmplementeerd. In de syntaxis hebben alleen witruimtetekens – spatie, tab- en lijnfeed betekenis, alle andere karakters worden genegeerd. Dientengevolge kunnen Whitespace-programma’s worden opgenomen in de witruimtetekens van een programma dat in een andere taal is geschreven of in een gewoon tekstbestand.

In theorie zou een programmeur een roman kunnen schrijven rond hun Whitespace-code – de code zou nog steeds werken, maar de meeste mensen zouden alleen de roman zien, niet de onderliggende Whitespace-code.

Omdat het een esoterische programmeertaal (esolang) is, is Whitespace gemaakt om de grenzen van het ontwerp van computerprogrammeertalen te testen, en niet bedoeld om te worden gebruikt voor mainstream programmeren. Het is simpelweg een proof of a concept, met zeer beperkte praktische toepassingen, aangezien het’wordt nauwelijks gebruikt in de echte wereld.

Echter, als een technische demonstrator die ontworpen is om te bewijzen dat je eigenlijk een werkende programmeertaal zou kunnen hebben die gebaseerd is op witruimte in plaats van karakters, werkt het zeker. Helaas was Whitespace dat niet’t ontworpen voor iets meer dan dat. Het was een uitgebreide technische demo, geen programmeertaal die was ontworpen voor praktische toepassingen.

Syntaxis

Commando’s in Whitespace, evenals de hele code, zijn samengesteld uit reeksen spaties, tabstops en linefeeds. Tab-space-space-space voert bijvoorbeeld een rekenkundige optelling uit van de twee bovenste elementen op de stapel. Code is geschreven in de vorm van een Instruction Modifier Parameter (IMP) gevolgd door de bewerking. Whitespace heeft de volgende IMP’s: “ruimte” – stapelmanipulatie, “tabruimte” – rekenen, “tabblad-tabblad” – heap toegang, “lijnvoeding” – stroomregeling, “tab-linefeed” – invoer uitvoer.

Gegevens worden weergegeven in een binaire vorm, met spaties voor 0 en tabbladen voor 1, gevolgd door een lijninvoer, bijvoorbeeld spatie-ruimte-ruimte-tab-tab-ruimte-lijninvoer is het binaire getal 000110, dat is 6 decimaal.

Het volgende voorbeeld telt van 1 tot 5 en print de cijfers van 1 tot 5, waar “S” vertegenwoordigt ruimte, “T” – tabblad, en “L” – lijnvoeding:

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

De uitvoer van de bovenstaande code is:

1 2 3 4 5

Hoe zit het met het schrijven van Hello World in Whitespace? Nou, daarvoor zou je vrijwel elke letter en jij moeten coderen’d eindigen met ongeveer 950 instanties van ruimte, tab en lijninvoer. Het’s zeker geen voorbeeld dat we kunnen opnemen in onze inleiding tot Whitespace, maar voor het geval u’geïnteresseerd bent, en je hebt te veel vrije tijd, je kunt het hier bekijken.

Whitespace-bronnen

Het heeft bijna geen zin om Whitespace te leren, maar als je het concept leuk vindt en je er meer over wilt weten, of een paar voorbeelden wilt proberen, bekijk dan de volgende bronnen:

  • De officiële Whitespace-website is offline, dus uw enige optie is om de gearchiveerde inhoud van Wayback Machine te bekijken met uitleg, tutorials en voorbeelden van de programmeertaal Whitespace in actie.
  • Je kunt een paar voorbeelden proberen met de Whitelips IDE Online Whitespace-compiler, die de “Hallo Wereld” voorbeeld standaard. Je zult verrast zijn hoe lang het voorbeeld is, want in Whitespace moet je elk teken één voor één definiëren met behulp van ASCII-codes.

Conclusie

Als programmeertaal is Whitespace zo exotisch als het maar kan, zelfs volgens esoterische taalnormen.

Terwijl het’het is geen programmeertaal die mensen eigenlijk gebruiken voor iets productiefs’is een slimme mentale oefening en het dient als bewijs dat je bijna alles in code kunt veranderen, althans in theorie.

Zodra je het hebt geprobeerd en erachter bent gekomen hoe het werkt, ben jij het’ben min of meer klaar met Whitespace, omdat je het echt kunt’t gebruik het voor iets ernstigs. Nou ja, in ieder geval niet tenzij je veel tijd hebt om te doden en niets beters te doen hebt.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map