|
ABSTRACT
A hierarchical module system is an effective tool for structuring large programs. Strictly hierarchical module systems impose an acyclic ordering on import dependencies among program units. This can impede modular programming by forcing mutually-dependent components to be consolidated into a single module. Recently there have been several proposals for module systems that admit cyclic dependencies, but it is not clear how these proposals relate to one another, nor how one might integrate them into an expressive module system such as that of ML.To address this question we provide a type-theoretic analysis of the notion of a recursive module in the context of a "phase-distinction" formalism for higher-order module systems. We extend this calculus with a recursive module mechanism and a new form of signature, called a recursively dependent signature, to support the definition of recursive modules. These extensions are justified by an interpretation in terms of more primitive language constructs. This interpretation may also serve as a guide for implementation.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
|
| |
3
|
|
| |
4
|
Luca Cardelli. Phase distinctions in type theory. Unpublished manuscript.
|
| |
5
|
Karl Crary, Robert Harper, Perry Cheng, Leaf Petersen, and Chris Stone. Transparent and opaque interpretations of datatypes. Technical Report CMU-CS-98-177, Carnegie Mellon University, School of Computer Science, November 1998.
|
 |
6
|
|
| |
7
|
Dominic Duggan and Constantinos Sourelis. Parameterized modules, recursive modules, and mixin modules, in 1998 A CM SIGPLAN Workshop on ML, pages 87-96, Baltimore, Maryland, September 1998.
|
 |
8
|
|
 |
9
|
|
 |
10
|
|
 |
11
|
|
| |
12
|
|
 |
13
|
Xavier Leroy, Manifest types, modules, and separate compilation, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.109-122, January 16-19, 1994, Portland, Oregon, United States
[doi> 10.1145/174675.176926]
|
| |
14
|
Xavier Leroy. The Objective Carol system: Documentation and user's guide. Available at http://pauillac, inria, fr/ocaml/htmlman/., 1996.
|
 |
15
|
|
| |
16
|
|
| |
17
|
|
| |
18
|
Zhong Shao. An overview of the FLINT/ML compiler. In Proceedings of the 1997 A CM SIGPLAN Workshop on Types in Compilation, Kyoto, Japan, June 1997.
|
| |
19
|
Zhong Shao. Equality of recursive types. (Private communication), September 1998.
|
 |
20
|
|
| |
21
|
Emin Giin Sirer, Marc E. Fiucynski, Przemyslaw Pardyak, and Brian N. Bershad. Safe dynamic linking in an extensible operating system. In Workshop on Compiler Support for System Software, Tucson, Arizona, February 1996.
|
 |
22
|
|
 |
23
|
D. Tarditi , G. Morrisett , P. Cheng , C. Stone , R. Harper , P. Lee, TIL: a type-directed optimizing compiler for ML, Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, p.181-192, May 21-24, 1996, Philadelphia, Pennsylvania, United States
|
CITED BY 25
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Alastair Reid , Matthew Flatt , Leigh Stoller , Jay Lepreau , Eric Eide, Knit: component composition for systems software, Proceedings of the 4th conference on Symposium on Operating System Design & Implementation, p.24-24, October 22-25, 2000, San Diego, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|