2000
DOI: 10.1007/3-540-46425-5_27
|View full text |Cite
|
Sign up to set email alerts
|

Equational Reasoning for Linking with First-Class Primitive Modules

Abstract: Abstract. 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… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
57
0

Year Published

2003
2003
2006
2006

Publication Types

Select...
6
1

Relationship

2
5

Authors

Journals

citations
Cited by 37 publications
(57 citation statements)
references
References 29 publications
0
57
0
Order By: Relevance
“…Its syntax is essentially isomorphic to that of the m-calculus of Wells and Vestergaard [31]. The key difference is a simplified call-by-name semantics, because the more sophisticated semantics (and equational theory) of the m-calculus are irrelevant for the typing issues this paper investigates.…”
Section: The M-calculus Of Mixin Modulesmentioning
confidence: 99%
See 1 more Smart Citation
“…Its syntax is essentially isomorphic to that of the m-calculus of Wells and Vestergaard [31]. The key difference is a simplified call-by-name semantics, because the more sophisticated semantics (and equational theory) of the m-calculus are irrelevant for the typing issues this paper investigates.…”
Section: The M-calculus Of Mixin Modulesmentioning
confidence: 99%
“…As a programming tool, first-class mixin modules are aimed not only at programming-in-the-large issues such as generic modules and dynamic linking, but also at programming-in-the-small issues, because they combine the features of λ-abstractions (first-class functions), records, environments with mutually recursive definitions, and namespaces [31]. A mixin module consists of named components; some are exports that the module defines for other modules, some are imports to be supplied by other modules, and some are locals, i.e., private to the module.…”
Section: Introductionmentioning
confidence: 99%
“…Operators on mixins are adapted from previous works [4,2,26]. The main one is composition: given two mixins e 1 and e 2 , their composition e 1 + e 2 returns a new mixin whose outputs are the concatenation of those of e 1 and e 2 , and whose inputs are the inputs of e 1 or e 2 that have not been filled by any output.…”
Section: An Operational Semantics Of Mixinsmentioning
confidence: 99%
“…As CMS , Wells and Vestergaard's m-calculus [26] is targeted to call-by-name evaluation. Nevertheless, it has a rich equational theory that allows to see MM as a strongly-typed version of the m-calculus specialized to call-by-value plus built-in late binding behavior (encoded in the m-calculus), explicit distinction between mixins and modules, programmer control over the order of evaluation, and a sound and flexible type system.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation