Type inference for record concatenatiOn and multiple inheritance
Proceedings of the Fourth Annual Symposium on Logic in computer science
Higher-order modules and the phase distinction
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modula-3
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
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
Programming in Ada95
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Using parameterized signatures to express modular structure
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Lambda calculus with explicit recursion
Information and Computation
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Toward a formal theory of extensible software
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Modular object-oriented programming with units and mixins
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Extending the scope of syntactic abstraction
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type-safe linking and modular assembly language
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
A Theory of Objects
The Java Language Specification
The Java Language Specification
The Definition of Standard ML
A lambda calculus of objects and method specialization
Nordic Journal of Computing
A Calculus for Link-Time Compilation
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
TACS '97 Proceedings of the Third International Symposium on Theoretical Aspects of Computer Software
A Primitive Calculus for Module Systems
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
WADT '97 Selected papers from the 12th International Workshop on Recent Trends in Algebraic Development Techniques
Equational Reasoning for Linking with First-Class Primitive Modules
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
A Fragment Calculus Towards a Model of Separate Compilation, Linking and Binary Compatibility
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
Mixin Modules in a Call-by-Value Setting
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Sharing in Typed Module Assembly Language
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
An Abstract Model of Java Dynamic Linking and Loading
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Equational Reasoning for Linking with First-Class Primitive Modules
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
A flexible model for dynamic linking in Java and C#
Theoretical Computer Science
A calculus of open modules: call-by-need strategy and confluence
Mathematical Structures in Computer Science
Featherweight Jigsaw: A Minimal Core Calculus for Modular Composition of Classes
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Mixin modules for dynamic rebinding
TGC'05 Proceedings of the 1st international conference on Trustworthy global computing
DeepFJig: modular composition of nested classes
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Program generation and components
FMCO'04 Proceedings of the Third international conference on Formal Methods for Components and Objects
Featherweight Jigsaw - Replacing inheritance by composition in Java-like languages
Information and Computation
Types for dynamic reconfiguration
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Recursive structures for standard ML
ACM SIGPLAN Notices - Supplemental issue
Hi-index | 0.00 |
Modules and linking are usually formalized by encodings which use the λ-calculus, records (possibly dependent), and possibly some construct for recursion. In contrast, we introduce the m-calculus, a calculus where the primitive constructs are modules, linking, and the selection and hiding of module components. The m-calculus supports smooth encodings of software structuring tools such as functions (λ-calculus), records, objects (ζ-calculus), and mutually recursive definitions. The m-calculus can also express widely varying kinds of module systems as used in languages like C, Haskell, and ML. We prove the m-calculus is confluent, thereby showing that equational reasoning via the m-calculus is sensible and well behaved.