Development

Software-ontwikkeling
biermok

Rocket science

Het maken van een programmeertaal is niet zo moeilijk.

© Pixabay Licence AILes
22 oktober 2021

Ik ben al jaren dikke vrienden met een Duitser. Verjaardagen zijn dan een verplicht nummer. Gelukkig is zijn vrouw in de zomermaanden jarig, zodat we dan in de gelukkige gelegenheid zijn om een van die beroemde Duitse 'Gartenfesten' mee te maken.

Koud zat ik achter mijn vierde biertje toen ik benaderd werd door een mij onbekende kennis van de jarige. Blijkbaar had hij gehoord dat ik ook in de informatica werkte. Ik wilde niet onbeleefd zijn, en glimlachend hoorde ik zijn verhaal aan. Vol trots vertelde hij over zijn werk als applicatieprogrammeur. Toen hij ervan overtuigd was, dat hij de rangorde in zijn voordeel had vastgesteld, vroeg hij me wat ik zoal geprogrammeerd had. Mijn vrouw herinnert het zich nog als de dag van gisteren.

Ik lichtte mijn hoofd een weinig op, glimlachte minzaam en zei: ”ik heb een compiler geschreven”. Het was gelijk stil. Zijn mond viel open, hij stamelde nog een paar woorden en ging nog maar eens een biertje halen. Ik heb ’m de hele avond niet meer teruggezien.

Ik weet het, sommige mensen hebben er kennelijk een belang bij om het maken van een programmeertaal moeilijker te voor te stellen dan het daadwerkelijk is. De eenvoudigste programmeertaal, SUBLEQ, kent echter maar één instructie. Dan hebben we nog Brainf**k, die heeft er slechts acht. Het nadeel van deze talen is wel dat het bijna onmogelijk is om ze te gebruiken zonder extra hulpmiddelen.

Forth is daarentegen nog wel te behappen voor gewone stervelingen. Het principe achter Forth is heel eenvoudig. Neem een door spaties gescheiden woord en zoek het op. Is het een commando, voer het uit. Is het geen commando, probeer het om te zetten naar een getal en plaats het op de stapel.

Lukt dat ook niet, geef dan een foutmelding. Het maken van een Forth commando is al net zo simpel. Neem nou het commando “plus”. Pak twee getallen van de stapel, tel ze op en leg de uitkomst terug op de stapel. Goed, om er een hele programmeertaal van te maken moet er nog wel wat bij, maar we zijn toch aardig op weg, niet?

Rocket science? Quatsch.

Magazine AG Connect

Dit artikel is ook gepubliceerd in het magazine van AG Connect (oktober 2021). Wil je alle artikelen uit dit nummer lezen, klik dan op de inhoudsopgave.

Reactie toevoegen