Tieftauchen in CPS: Eine Reise in die Kompilierung funktionaler Programmiersprachen
Dieser Artikel befasst sich eingehend mit dem Continuation-Passing Style (CPS) und seiner Anwendung beim Kompilieren funktionaler Programmiersprachen. Der Autor baut schrittweise einen CPS-Transformator für eine einfache, Scheme-ähnliche Sprache, wobei er Optimierungsstrategien und Codegenerierungsmethoden erläutert. Der Artikel beschreibt detailliert die Transformation von Integern, Variablen, Funktionsaufrufen, arithmetischen Operatoren, Lambda-Ausdrücken und if-Ausdrücken in die CPS-Form. Er behandelt auch Meta-Continuations und Optimierungstechniken wie Constant Folding und Beta-Reduktion. Abschließend werden verschiedene Ansätze zur Generierung ausführbaren Codes aus CPS beschrieben, darunter die Generierung von C-Code, die Verwendung von Trampolinen und die Anwendung einer einzigen großen switch-Anweisung.