𝗛𝗼𝗲 𝗲𝗲𝗻 𝗟𝗶𝘀𝗽-𝗶𝗻𝘁𝗲𝗿𝗽𝗿𝗲𝘁𝗲𝗿 𝘀𝗰𝗵𝗿𝗶𝗳𝘁
Je verkrijgt diepgaande kennis wanneer je leert hoe programmeertalen werken. Het bouwen van een Lisp-interpreter in Python is een klassieke manier om dit te zien.
Peter Norvig schreef in 2010 een beroemde gids over dit onderwerp. De principes van interpreter-ontwerp veranderen niet. Je leert hoe code wordt omgezet in actie.
Een interpreter volgt drie hoofdfasen:
- Lexicale analyse: Je breekt ruwe code af in tokens. Dit zijn de kleine stukjes zoals woorden en symbolen.
- Syntactische analyse: Je zet tokens om in een boom. Deze boom toont de structuur van de code.
- Evaluatie: Je volgt de boom om de operaties uit te voeren en een resultaat te krijgen.
Lisp maakt dit eenvoudig. Het maakt gebruik van S-expressies. Dit betekent dat alles een lijst is binnen haakjes. Het eerste item is meestal de functie. De rest zijn de argumenten.
Om te beginnen zet je code zoals (+ 10 (* 2 5)) om in tokens.
Je tokens zien er als volgt uit: '(', '+', '10', '(', '*', '2', '5', ')', ')'
Het bestuderen van deze kernmechanismen verandert de manier waarop je dagelijks je tools gebruikt.