MIL, a Monadic Intermediate Language for Implementing Functional Languages
IFL 2018 Proceedings of the 30th Symposium on Implementation and Application of Functional Languages
This paper describes MIL, a "monadic intermediate language" that is designed for use in optimizing compilers for strict, strongly typed functional languages. By using a notation that exposes the construction and use of closures and algebraic datatype values, for example, the MIL optimizer is able to detect and eliminate many unnecessary uses of these structures prior to code generation. One feature that distinguishes MIL from other intermediate languages in this area is the use of a typed, parameterized notion for basic blocks. This both enables new optimization techniques, such as the ability to create specialized versions of basic blocks, and leads to a new approach for implementing changes in data representation.
Locate the Document
Jones, M. P., Bailey, J., & Cooper, T. R. (2018, September). MIL, a Monadic Intermediate Language for Implementing Functional Languages. In Proceedings of the 30th Symposium on Implementation and Application of Functional Languages (pp. 71-82). ACM.