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 βη-normal form. Caml uses a virtual machine and has the capability to load byte code at run time. Representing the long βη-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.
Types in Compilation: Second International Workshop, Tic ’98 Kyoto, Japan, March 25–27, 1998 Proceedings, 1998, p. 240-252
Second International Workshop on Types in Compilation. TIC '98, 1998