Les deux précédents articles de cette série nous ont permis de mettre au point les fonctionnalités de base de notre langage de programmation. Nous sommes maintenant outillés pour pouvoir parser et évaluer des expressions d'un langage de type Lisp. De plus, nous disposons d'un mécanisme de plugins permettant d'étendre facilement notre langage. Nous allons maintenant passer aux choses sérieuses et permettre à notre langage de s'étendre en déclarant des fonctions, et surtout en supportant les macros.
Dans ce troisième article, nous allons étendre très largement les possibilités de notre langage, en ajoutant non seulement les fonctions, mais aussi les macros. Pour cela, nous commencerons par ajouter quelques structures pour le contrôle de flux, comme l'indispensable if. Nous détaillerons ensuite la forme spéciale let, qui permet d'ajouter des variables. Il apparaîtra ensuite que l'ajout de fonctions est finalement proche de cette forme. Enfin, nous irons au-delà de ce que sont capables de faire la plupart des langages en dotant notre langage de macros.
Nous avons conclu notre précédent article en dotant notre langage de programmation d'un ensemble de fonctionnalités, nommé core, et permettant entre autres de supporter les opérations arithmétiques de base.
Nous allons à présent ajouter un plugin pour définir de nouvelles fonctions.
Mais avant ça, nous allons étendre encore plus notre langage, notamment avec des structures impératives...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première