Publication | Closed Access
Implementing typed intermediate languages
78
Citations
27
References
1998
Year
Unknown Venue
EngineeringCompiler TechnologyComputer ArchitectureSoftware EngineeringSoftware AnalysisFormal VerificationIntermediate LanguageSyntaxDependently Typed ProgrammingGrammarLanguage StudiesCompilersDynamic CompilationCompiler SupportComputer EngineeringComputer ScienceType SystemExtensible LanguageAutomated ReasoningProgram AnalysisFormal MethodsIntermediate LanguagesLinguistics
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1