15-851
Computation & Deduction
Spring 1997
Frank Pfenning

Compilation

This code implements different versions of evaluation with environments, compilation from the high-level Mini-ML language to expressions using de Bruijn indices, and the correctness proofs for this compilation.

Fragment with Functions Only

This code covers Section 6.1 of the notes discussed in Lecture 10. See also the CONFIG file and the directory compile/debruijn1/ for this code.

File Description
mini-ml.elf Mini-ML expressions
debruijn.elf Mini-ML expressions in de Bruijn form
trans.elf Translation between representations
feval.elf Evaluation with environments
eval.elf Evaluation with substitution
map-eval.elf Mapping between evaluations
examples.quy Example Queries

Extension to Full Mini-ML

This code covers Section 6.2 of the notes, discussed in Lecture 11. See also the CONFIG file and the directory compile/debruijn/ for this code.

File Description
mini-ml.elf Mini-ML expressions
debruijn.elf Mini-ML expressions in de Bruijn form
trans.elf Translation between representations
feval.elf Evaluation with environments
eval.elf Evaluation with substitution
value.elf Value judgment
val-lemmas.elf Lemmas regarding the evaluation of values
map-eval.elf Mapping between evaluations
examples.quy Example Queries

A Continuation Machine

This code covers the continuation machine discussed in lectures 11 and 12. See also the CONFIG file and the directory compile/cpm/ for this code.

File Description
mini-mlv.elf Mini-ML expressions and values
evalv.elf Mini-ML evaluation with values
cpm.elf States of continuation machine
ceval.elf Evaluation under continuations
ceval-sound.elf Soundness of continuation machine
ceval-complete.elf Completeness of continuation machine
examples.quy Example Queries

A Contextual Semantics

This code covers the contextual semantics discussed in Lecture 12. See also the CONFIG file and the directory compile/cxm/ for this code.

File Description
mini-mlv.elf Mini-ML expressions and values
evalv.elf Mini-ML evaluation with values
xeval.elf Contextual evaluation
examples.quy Example Queries

A Continuation-Passing Style

This code covers the continuation-passing style discussed in Lecture 14. See also the CONFIG file and the directory compile/cps/ for this code.

File Description
mini-ml.elf Mini-ML expressions
cps.elf Expressions in continuation-passing style (CPS)
ml-cps.elf Compilation to CPS expressions
ceval.elf Evaluation of CPS expressions
examples.quy Example Queries

[ C&D Home | Schedule | Code | Assignments | Notes | Projects | Elf ]

© Frank Pfenning 1992-1997
fp@cs