Object-oriented programming with flavors
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
The categorical abstract machine
Science of Computer Programming
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
The programming language jigsaw: mixins, modularity and multiple inheritance
The programming language jigsaw: mixins, modularity and multiple inheritance
Manifest types, modules, and separate compilation
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type-theoretic approach to higher-order modules with sharing
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Program fragments, linking, and modularization
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Modular object-oriented programming with units and mixins
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Recursive structures for standard ML
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
A Theory of Objects
A Primitive Calculus for Module Systems
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
Compilation of extended recursion in call-by-value functional languages
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
A denotational semantics of inheritance
A denotational semantics of inheritance
Applying traits to the smalltalk collection classes
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
A type system for well-founded recursion
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Journal of Functional Programming
The recursive record semantics of objects revisited
Journal of Functional Programming
A Subtyping for Extensible, Incomplete Objects
Fundamenta Informaticae
From structures and functors to modules and units
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Mixin' up the ML module system
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Compilation of extended recursion in call-by-value functional languages
Higher-Order and Symbolic Computation
Mixin’ Up the ML Module System
ACM Transactions on Programming Languages and Systems (TOPLAS)
Backpack: retrofitting Haskell with interfaces
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
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.