Plongeon au cœur du CPS : Un voyage dans la compilation de la programmation fonctionnelle
Cet article explore en profondeur le style de passage de continuation (CPS) et son application dans la compilation des langages de programmation fonctionnelle. L’auteur construit pas à pas un transformateur CPS pour un langage simple ressemblant à Scheme, en expliquant les stratégies d’optimisation et les méthodes de génération de code. L’article détaille la transformation des entiers, des variables, des appels de fonction, des opérateurs arithmétiques, des expressions lambda et des expressions if en forme CPS. Il aborde également les méta-continuations et les techniques d’optimisation telles que le pliage de constantes et la réduction bêta. Enfin, il décrit plusieurs approches pour générer du code exécutable à partir du CPS, notamment la génération de code C, l’utilisation de trampolines et l’emploi d’une seule instruction switch volumineuse.