Strong Normalization by Type-Directed Partial Evaluation and Run-Time
Code Generation (Preliminary Version)
We investigate the synergy between type-directed partial evaluation and run-time code generation for the Caml dialect of ML. Type-directed partial evaluation maps simply typed, closed Caml values to a representation of their long beta-eta-normal form. Caml uses a virtual machine and has the capability to load byte code at run time. Representing the long beta-eta-normal forms as byte code gives us the ability to strongly normalize higher-order values (i.e., weak head normal forms in ML), to compile the resulting strong normal forms into byte code, and to load this byte code all in one go, at run time.
We conclude this note with a preview of our current work on scaling up strong normalization by run-time code generation to the Caml module language