Langages, compilateurs, interpréteurs

Pour le projet BuboCore, j’ai besoin de pouvoir implémenter plein de petits langages de programmation, autant de manières différentes de pouvoir s’exprimer en fonction de la manière dont on perçoit / conçoit les choses. Il nous faut implémenter des compilateurs, qui génèrent des programmes composés d’instructions en bytecode. Quelques ressources utiles pour s’instruire à ce sujet :
- JonesForth : un tutoriel entièrement contenu dans un fichier de code assembleur (2000 lignes). Sans doute le tutoriel le plus complexe à suivre mais je n’en entends que du bien. Il faut déjà pouvoir lire du code assembleur, mais il semble que ce soit un bon moyen de comprendre comment mettre en place un FORTH très minimaliste qui peut ensuite être étendu à l’usage.
- Crafting Interpreters : Un ouvrage de Robert Nystrom, avec un effort vraiment appréciable de mise en page et d’édition. Se consacre à la création d’interpréteurs et non de compilateurs. Il y a toutefois toute une base commune entre ces deux types de programmes.
- Blog de Zserge : le blog d’un développeur allemand qui propose une série de courts billets chacun consacrés à la conception d’un petit langage de programmation. Cela peut sans doute être utile pour quelques expérimentations.
J’ajouterais des ressources ici, au fur et à mesure, si j’en rencontre de nouvelles !