CIS 700 (Fall '19) by Kris Micinski at Syracuse U Notes for "Program Analysis: Foundations and Applications"
This repository contains a broad array of abstract machines and abstract interpreters, along with conversion routines (e.g., ANF/CPS conversion) for a variety of languages (mostly the lambda calculus extended with various primitives).
anf-convert.rkt
- Sample ANF converter over a subset of Scheme.cek.rkt
- A simple CEK machine, done via ANF and non-ANFchurch.rkt
- A church-encodercps-machine
- Concrete interpreter for CPS lambda calculuscps-convert.rkt
- A CPS converter for a Scheme subsetcesk.rkt
- A CESK machine for direct-style lambda calculus