Abstract
Recent advances in compiler technology have demonstrated the benefits of using strongly typed intermediate languages to compile richly typed source languages (e.g., ML). A type-preserving compiler can use types to guide advanced optimizations and to help generate provably secure mobile code. Types, unfortunately, are very hard to represent and manipulate efficiently; a naive implementation can easily add exponential overhead to the compilation and execution of a program. This paper describes our experience with implementing the FLINT typed intermediate language in the SML/NJ production compiler. We observe that a type-preserving compiler will not scale to handle large types unless all of its type-preserving stages preserve the asymptotic time and space usage in representing and manipulating types. We present a series of novel techniques for achieving this property and give empirical evidence of their effectiveness. © 1998 ACM.
Cite
CITATION STYLE
Shao, Z., League, C., & Monnier, S. (1999). Implementing typed intermediate languages. SIGPLAN Notices (ACM Special Interest Group on Programming Languages), 34(1), 313–323. https://doi.org/10.1145/291251.289460
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.