A calculus of module systems

被引:42
作者
Ancona, D [1 ]
Zucca, E [1 ]
机构
[1] Dipartimento Informat & Sci Informaz, I-16146 Genoa, Italy
关键词
D O I
10.1017/S0956796801004257
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present CMS, a simple and powerful calculus of modules supporting mutual recursion and higher order features, which can be instantiated over an arbitrary core calculus satisfying standard assumptions. The calculus allows expression of a large variety of existing mechanisms for combining software components, including parameterized modules similar to ML functors, extension with overriding as in object-oriented programming, mixin modules and extra-linguistic mechanisms like those provided by a linker. Hence CMS can be used as a paradigmatic calculus for modular languages, in the same spirit the lambda calculus is used for functional programming. We first present an untyped version of the calculus and then a type system; we prove confluence, progress, and subject reduction properties. Then, we define a derived calculus of mixin modules directly in terms of CMS and show how to encode other primitive calculi into CMS (the lambda calculus and the Abadi-Cardelli object calculus). Finally, we consider the problem of introducing a subtype relation for module types.
引用
收藏
页码:91 / 132
页数:42
相关论文
共 44 条
[1]  
Abadi M., 1996, MONOGRAPHS COMPUTER
[2]  
Ancona D., 2001, ECOOP 2001 - Object-Oriented Programming. 15th European Conference. Proceedings (Lecture Notes in Computer Science Vol.2072), P354
[3]  
Ancona D., 1997, Programming Languages: Implementations, Logics, and Programs. 9th International Symposium, PLILP'97, Including a Special Track on Declarative Programming Languages in Education. Proceedings, P47, DOI 10.1007/BFb0033836
[4]  
Ancona D, 1998, LECT NOTES COMPUT SC, V1376, P92
[5]  
Ancona D, 1999, LECT NOTES COMPUT SC, V1702, P62
[6]  
Ancona D., 1998, Mathematical Structures in Computer Science, V8, P401, DOI 10.1017/S0960129598002576
[7]  
Ancona D, 2000, LECT NOTES COMPUT SC, V1850, P154
[8]  
ANCONA D, 1998, THESIS U DIPISA
[9]  
ANCONA D, 1999, WADT 98, P1
[10]  
ANCONA D, 2000, LECT NOTES COMPUTER, V1816