Abstract
This work focuses on software reuse for languages equipped with a module system. To retrieve modules from a library, it is quite reasonable to use module signatures as a search key, up to a suitable notion of signature isomorphism.
We study a formal notion of isomorphism for module signatures, which naturally extends the notion of isomorphism for types in functional languages. Isomorphisms between module types surprisingly have nontrivial interactions with the theory of isomorphisms of the base language to which the module system is added. We investigate the power of this notion in equating module signatures, and we study its decidability. This work does not impose any limitative assumption on the module system as we handle type declarations in signatures, type sharing and higher order modules.
Preview
Unable to display preview. Download preview PDF.
References
María Virginia Aponte. Extending records typing to type parametric modules with sharing. In 20th symposium on Principles of Programming Languages, 1993.
Roberto Di Cosmo. Type isomorphisms in a type assignment framework. In 19th Ann. ACM Symp. on Principles of Programming Languages (POPL), pages 200–210. ACM, 1992.
Roberto Di Cosmo. Isomorphisms of types: from λ-calculus to information retrieval and language design. Birkhauser, 1995. ISBN-0-8176-3763-X.
Roberto Di Cosmo. Second order isomorphic types. A proof theoretic study on second order λ-calculus with surjective pairing and terminal object. Information and Computation, pages 176–201, June 1995.
Robert Harper, Robin Milner, and Mads Tofte. A type discipline for program modules. In Theory and Practice of Programming Languages, volume 250 of Lecture Notes in Computer Science. Springer Verlag, 1987.
Xavier Leroy. Manifest types, modules, and separate compilation. In 21st symposium on Principles of Programming Languages, pages 109–122. ACM Press, January 1994.
Xavier Leroy. A syntactic approach to type generativity and sharing (extended abstract). In Record of the 1994 ACM-SIGPLAN Workshop on ML and its Applications, pages 1–12. INRIA, June 1994.
Xavier Leroy. Applicative functors and fully transparent higher-order modules. In 22nd symposium on Principles of Programming Languages. ACM Press, January 1995.
Xavier Leroy. The Caml Special Light system. Technical report, INRIA, Roquencourt, Le Chesnay Cedex 78153, France, 1995. Available as ftp://ftp.inria.fr/lang/caml-light/csl*.
Xavier Leroy. The Objective Caml reference manual. Technical report, INRIA, Roquencourt, Le Chesnay Cedex 78153, France, 1996. Available as ftp://ftp.inria.fr/lang/caml-light/ocaml*.
David MacQueen. Modules for standard ML. In ACM Symposium on Lisp and Functional Programming, 1984.
Robin Milner, Mads Tofte, and Robert Harper. The Definition of Standard ML. The MIT Press, 1990.
Departement of Defense DoD. Ada reference manual. 1983.
Patrick Parot. Automatisation d'une bibliothèque de modules. In Journées Francophones des Langages Applicatifs, pages 75–98, 1995.
Mikael Rittri. Searching program libraries by type and proving compiler correctness by bisimulation. PhD thesis, University of Göteborg, Göteborg, Sweden, 1990.
Mikael Rittri. Using types as search keys in function libraries. Journal of Functional Programming, 1(1):71–89, 1991.
Pierre Weis and Xavier Leroy. Le langage Caml. InterÉditions, 1993.
Amy Moormann Zaremsky and Jeannette M. Wing. Signature matching: a key to reuse. In SIGSOFT, December 1993. Also available as CMU-CS-93-151, May 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Aponte, M.V., Di Cosmo, R. (1996). Type isomorphisms for module signatures. In: Kuchen, H., Doaitse Swierstra, S. (eds) Programming Languages: Implementations, Logics, and Programs. PLILP 1996. Lecture Notes in Computer Science, vol 1140. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61756-6_95
Download citation
DOI: https://doi.org/10.1007/3-540-61756-6_95
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61756-3
Online ISBN: 978-3-540-70654-0
eBook Packages: Springer Book Archive