Syntax
Omdat ik die vraag steeds weer heb beantwoord de afgelopen jaren, merk ik dat ik weer anders tegen de vraag ben gaan aankijken. De Japanse schrijver Murakami schrijft dat het leuke van ouder worden is dat je altijd dezelfde persoon blijft, maar jezelf ook nog kunt blijven verrassen. Ik vind dat een heel mooi sentiment en ik herken me er ook steeds meer in naarmate ik ouder word.
Bij deze vraag ben ik over de jaren heen vooral meer en meer over de vraag gaan nadenken, in plaats van over het antwoord. Laten we dus, voor we aan het antwoord op de vraag toekomen, eens kijken wat nu de vraag is.
Wat is een taal met weinig syntax eigenlijk? Even een kleine opfrisser voor diegenen voor wie het lang geleden is: syntax is hoe een taal eruitziet, semantiek is wat het betekent. Dat wij in het Nederlands stam + t schrijven is syntax, dat een boek een ding is met papier en verhalen erin is semantiek.
Met een taal met weinig syntax bedoelen programmeurs meestal talen zoals Lisp. In Lisp typ je ongeveer de abstracte syntax tree. Als je bijvoorbeeld de gebruiker zijn naam wilt vragen en wilt antwoorden met Hallo <naam>, doe je dat zo:
(write-line (print (concatenate (“Hello ” (read)))))
Dat vertaalt zicht naar deze syntaxboom:
Even ter vergelijking, in mijn taal Hedy kan dit zo:
name is ask What is your name
print Hello name
Hoe meer ik er over nadenk, hoe gekker ik het vind dat mensen Lisp “weinig syntax” vinden hebben, en vinden dat Hedy meer syntax heeft (en Python of Java natuurlijk nog meer). Het interessante is dat dit een kwestie is van perspectief. Het is zo dat Lisp weinig syntax heeft, als je ermee bedoelt dat je als maker van een parser van Lisp weinig moeite hoeft te doen om de syntaxboom te verkrijgen. Je hoeft maar de haakjes langs te lopen en je bent er. In Hedy moet je meer moeite doen. Je moet bijvoorbeeld bepalen dat 'name' een variabele is in de tweede regel code en 'Hello' een string.
Maar het 'parsegemak' is sterk het perspectief van de programmeertalenmaker. Er zijn veel meer gebruikers van talen dan makers, en als gebruiker zou je kunnen zeggen dat er in Lisp veel meer 'gekke karakters' zijn die je goed moet typen. Meer syntax dus, en niet minder. Het is grappig om je te realiseren dat heel veel programmeurs Lisp classificeren als “weinig syntax” zonder erbij stil te staan wat ze daar eigenlijk mee bedoelen.
Het maakt weer eens duidelijk dat makers van programmeertalen een fikse stempel drukken op de denkwijze van programmeurs, meer dan ze misschien beseffen.
Magazine AG Connect
Dit artikel is ook gepubliceerd in het magazine van AG Connect (juni-julinummer 2021). Wil je alle artikelen uit dit nummer lezen, klik dan hier voor de inhoudsopgave.
Reacties
Om een reactie achter te laten is een account vereist.
Inloggen Word abonnee