Abstract
We present a simple and powerful calculus of modules supporting mutual recursion and higher order features. The calculus allows to encode a large variety of existing mechanisms for combining software components, including parameterized modules, extension with overriding of object-oriented programming, mixin modules and extra-linguistic mechanisms like those provided by a linker. As usual, we first present an untyped version of our calculus and then a type system which is proved sound w.r.t. the reduction semantics; moreover we give a translation of other primitive calculi.
Partially supported by Murst – Tecniche formali per la specifica, l’analisi, la verifica, la sintesi e la trasformazione di sistemi software and CNR – Formalismi per la specifica e la descrizione di sistemi ad oggetti.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Abadi, M., Cardelli, L.: A Theory of Objects. Monographs in Computer Science. Springer, New York (1996)
Ancona, D.: Modular Formal Frameworks for Module Systems. PhD thesis, Dipartimento di Informatica, Università di Pisa (1998)
Ancona, D.: An algebraic framework for separate type-checking. In: Fiadeiro, J. (ed.) WADT 1998. LNCS, vol. 1589, pp. 1–15. Springer, Heidelberg (1999) (to appear)
Ancona, D., Zucca, E.: Overriding operators in a mixin-based framework. In: Glaser, H., Hartel, P. (eds.) PLILP 1997. LNCS, vol. 1292, pp. 47–61. Springer, Heidelberg (1997)
Ancona, D., Zucca, E.: A theory of mixin modules: Basic and derived operators. Mathematical Structures in Computer Science 8(4), 401–446 (1998)
Ancona, D., Zucca, E.: A modular calculus for module systems. Technical report, Dipartimento di Informatica e Scienze dell’Informazione, Università di Genova (June 1999)
Bracha, G.: The Programming Language JIGSAW: Mixins, Modularity and Multiple Inheritance. PhD thesis, Department of Comp. Sci., Univ. of Utah (1992)
Cardelli, L.: Program fragments, linking, and modularization. In: ACM Symp. on Principles of Programming Languages 1997, January 1997, pp. 266–277. ACM Press, New York (1997)
Cook, W.: A Denotational Semantics of Inheritance. PhD thesis, Dept. Comp. Sci., Brown University (1989)
Crary, K., Harper, R., Puri, S.: What is a recursive module? In: PLDI 1999 - ACM Conf. on Programming Language Design and Implementation (1999) (to appear)
Duggan, D., Sourelis, C.: Mixin modules. In: Intl. Conf. on Functional Programming, Philadelphia. SIGPLAN Notices, vol. 31(6), pp. 262–273. ACM Press, New York (1996)
Flatt, M., Felleisen, M.: Units: Cool modules for HOT languages. In: PLDI 1998 - ACM Conf. on Programming Language Design and Implementation, pp. 236–248 (1998)
Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: ACM Symp. on Principles of Programming Languages 1998, pp. 171–183 (January1998)
Harper, R., Lillibridge, M.: A type theoretic approach to higher-order modules with sharing. In: ACM Symp. on Principles of Programming Languages 1994, pp. 127–137. ACM Press, New York (1994)
Harper, R., Lillibridge, M., Moggi, E.: Higher-order modules and the phase distinction. In: ACM Symp. on Principles of Programming Languages 1990, S. Francisco, CA, pp. 341–354. ACM Press, New York (1990)
Leroy, X.: Manifest types, modules and separate compilation. In: ACM Symp. on Principles of Programming Languages 1994, pp. 109–122. ACM Press, New York (1994)
Leroy, X.: A modular module system. Technical Report 2866, Institute National de Recherche en Informatique et Automatique (April 1996)
Milner, R., Tofte, M., Harper, R.: The Definition of Standard ML. The MIT Press, Cambridge (1990)
Reddy, U.S.: Objects as closures: Abstract semantics of object-oriented languages. In: Proc. ACM Conf. on Lisp and Functional Programming, pp. 289–297 (1988)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ancona, D., Zucca, E. (1999). A Primitive Calculus for Module Systems. In: Nadathur, G. (eds) Principles and Practice of Declarative Programming. PPDP 1999. Lecture Notes in Computer Science, vol 1702. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10704567_4
Download citation
DOI: https://doi.org/10.1007/10704567_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66540-3
Online ISBN: 978-3-540-48164-5
eBook Packages: Springer Book Archive