|
ABSTRACT
ML-style modules are valuable in the development and maintenance of large software systems, unfortunately, none of the existing languages support them in a fully satisfactory manner. The Official SML'97 Definition does not allow higher-order functors, so a module that refers to externally defined functors cannot accurately describe its import interface. MacQueen and Tofte [26] extended SML'97 with fully transparent higher-order functors, but their system does not have a type-theoretic semantics thus fails to support fully syntactic signatures. The systems of manifest types [19, 20] and translucent sums [12] support fully syntactic signatures but they may propagate fewer type equalities than fully transparent functors. This paper presents a module calculus that supports both fully transparent higher-order functors and fully syntactic signatures (and thus true separate compilation). We give a simple type-theoretic semantics to our calculus and show how to compile it into an Fω-like λ-calculus extended with existential types.
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
|
Edoardo Biagioni , Robert Harper , Peter Lee , Brian G. Milnes, Signatures for a network protocol stack: a systems application of Standard ML, Proceedings of the 1994 ACM conference on LISP and functional programming, p.55-64, June 27-29, 1994, Orlando, Florida, United States
|
 |
2
|
|
| |
3
|
M. B/ume. A compilation manager for SML/NJ. as part of SML/NJ User's Guide, 1995.
|
| |
4
|
L. Cardelli and X. Leroy. Abstract types and the dot notation. In Proc. Programming Concepts and Methods, pages 479~;04. North Holland, 1990.
|
| |
5
|
|
| |
6
|
S. Corrieo, B. Ewbank, T. Griffin, J. Meale, and H. Trickey. A tool for developing safe and efficient database transactions. In 15th In. ternational Switching Symposium of the World 7~lecommunications Congress, pages 173-177, April 1995.
|
| |
7
|
|
 |
8
|
Karl Crary , Robert Harper , Sidd Puri, What is a recursive module?, Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation, p.50-63, May 01-04, 1999, Atlanta, Georgia, United States
|
 |
9
|
|
| |
10
|
L. George. MLRISC: Customizable and reusable code generators. Technical memorandum, Lucent Bell Laboratories, Murray Hill, N$, 1997.
|
| |
11
|
J.Y. Girard. Interpretation Fonctionnelle et Elimination des Coupures clans l'Arithmetique d'Ordre Superieur. PhD thesis, University of Paris VII, 1972.
|
 |
12
|
|
 |
13
|
|
 |
14
|
|
 |
15
|
|
| |
16
|
R. Harper and C. Stone. An interpretation of Standard ML in type theory. Technical Report CMU--CS-97-147, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, June 1997.
|
 |
17
|
|
 |
18
|
|
 |
19
|
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]
|
 |
20
|
|
| |
21
|
X. Leroy. A syntactic ~eory of type generativity and sharing. Journal of Functional Programming, 6(5): 1-32, September 1996.
|
 |
22
|
Sheng Liang , Gilad Bracha, Dynamic class loading in the Java virtual machine, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.36-44, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
23
|
M. LiUibr/dge. Translucent Sums: A Foundation far Higher-Order Module Systems. PhD thesis, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, May 1997. T~ch Report CMU-CS- 97-122.
|
 |
24
|
|
 |
25
|
|
| |
26
|
|
| |
27
|
|
| |
28
|
|
 |
29
|
Yasuhiko Minamide , Greg Morrisett , Robert Harper, Typed closure conversion, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.271-283, January 21-24, 1996, St. Petersburg Beach, Florida, United States
[doi> 10.1145/237721.237791]
|
| |
30
|
|
| |
31
|
J.H. Reppy and E. R. Gansner. The eXene library manual. SML/NJ documentations, March 1991.
|
| |
32
|
|
| |
33
|
C.V. Russo. Types For Modules. PhD thesis, University of Edinburgh, Edinburgh, UK, June 1998.
|
 |
34
|
|
 |
35
|
|
| |
36
|
Z. Shoo. Transparent modules with fully syntactic signatures (extended version). Technical Report YALEU/DCS/RR-1181, Dept. of Computer Science, Yale Univ., New Haven, CT, June 1999.
|
| |
37
|
|
 |
38
|
|
 |
39
|
|
|