The ML module system provides powerful parameterization facilities, but lacks the ability to split mutually recursive definitions across modules and provides insufficient support for incremental programming. A promising approach to solve these issues is Ancona and Zucca's mixin module calculus CMS. However, the straightforward way to adapt it to ML fails, because it allows arbitrary recursive definitions to appear at any time, which ML does not otherwise support. In this article, we enrich CMS with a refined type system that controls recursive definitions through the use of dependency graphs. We then develop and prove sound a separate compilation scheme, directed by dependency graphs, that translates mixin modules down to a call-by-value λ-calculus extended with a nonstandard let rec construct. © 2005 ACM.
CITATION STYLE
Hirschowitz, T., & Leroy, X. (2005). Mixin modules in a call-by-value setting. ACM Transactions on Programming Languages and Systems, 27(5), 857–881. https://doi.org/10.1145/1086642.1086644
Mendeley helps you to discover research relevant for your work.