We present a type-preserving compilation of Featherweight IL.
Featherweight IL is a significant subset of MS IL which models
new features including value classes and their interaction with
reference classes. Our translation makes use of a high-level
intermediate language called Functional Featherweight IL.
The target language LFLINT is a low-level language which is
close to machine level implementations. During the compilation,
we preserve and further identify the basic block structures of
the program, and perform CPS and closure conversions. We use
memory based fixpoint to handle mutually recursive classes at
compile time. Standard linking techniques can be applied for
separate compilation. A type-preservation theorem for the
formal translation is presented. In the long run, our work aims
at supporting certifying compilation of high-level class-based
- In Proc. 2002 Workshop on Formal Techniques for Java-like
Programs (FTfJP'02),, Malaga, Spain, June 2002.
- Technical Report YALEU/DCS/TR-1228, Dept. of Computer Science,
Yale University, New Haven, CT, April 2002.