Bêta-évaluateur de style direct d'ordre normal avec règles de syntaxe et applications répétées de call/cc

2025-09-17

Cet article explore des applications moins fréquentes de call/cc dans les macros Scheme hygiéniques, notamment son utilisation pour faciliter les calculs lambda fastidieux. L'auteur présente un bêta-normalisateur de style direct d'ordre normal combinant intelligemment les règles de syntaxe et les applications répétées de call/cc, prouvant sa correction via la transformation CPS et un ingénieux lambda-calculateur de style direct. L'article approfondit également les continuations délimitées, montrant comment des macros simples peuvent implémenter divers opérateurs de continuation délimitée, tels que prompt et control. Une implémentation de fonction factorielle basée sur call/cc et une discussion sur les continuations délimitées mettent en évidence l'élégance et l'aspect pratique de l'approche.

Lire plus
Développement

Cours de Compilateur Incrémental : De Tiger à l'Assembleur x86-64 en OCaml

2025-04-05

Il s'agit d'un cours de compilateur très pratique visant à construire un compilateur qui traduit le langage de haut niveau Tiger en code machine x86-64. Le cours utilise OCaml et met l'accent sur le développement piloté par les tests, le contrôle de version et la réutilisation du code. Il utilise une approche de développement incrémentale et itérative, étendant progressivement les fonctionnalités du langage et du compilateur, en tirant parti du style tagless-final pour une meilleure extensibilité. Le cours couvre les sujets standard des cours de compilateur, tels que l'analyse, la vérification de type, l'optimisation et la génération d'assemblage, mais d'une manière non traditionnelle.

Lire plus