Type isomorphisms for module signatures
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.
Keywordstyping and structuring systems programming environments module systems ML retrieval of functions in function libraries
Unable to display preview. Download preview PDF.
- 1.María Virginia Aponte. Extending records typing to type parametric modules with sharing. In 20th symposium on Principles of Programming Languages, 1993.Google Scholar
- 2.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.Google Scholar
- 3.Roberto Di Cosmo. Isomorphisms of types: from λ-calculus to information retrieval and language design. Birkhauser, 1995. ISBN-0-8176-3763-X.Google Scholar
- 4.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.Google Scholar
- 5.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.Google Scholar
- 6.Xavier Leroy. Manifest types, modules, and separate compilation. In 21st symposium on Principles of Programming Languages, pages 109–122. ACM Press, January 1994.Google Scholar
- 7.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.Google Scholar
- 8.Xavier Leroy. Applicative functors and fully transparent higher-order modules. In 22nd symposium on Principles of Programming Languages. ACM Press, January 1995.Google Scholar
- 9.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*.Google Scholar
- 10.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*.Google Scholar
- 11.David MacQueen. Modules for standard ML. In ACM Symposium on Lisp and Functional Programming, 1984.Google Scholar
- 12.Robin Milner, Mads Tofte, and Robert Harper. The Definition of Standard ML. The MIT Press, 1990.Google Scholar
- 13.Departement of Defense DoD. Ada reference manual. 1983.Google Scholar
- 14.Patrick Parot. Automatisation d'une bibliothèque de modules. In Journées Francophones des Langages Applicatifs, pages 75–98, 1995.Google Scholar
- 15.Mikael Rittri. Searching program libraries by type and proving compiler correctness by bisimulation. PhD thesis, University of Göteborg, Göteborg, Sweden, 1990.Google Scholar
- 16.Mikael Rittri. Using types as search keys in function libraries. Journal of Functional Programming, 1(1):71–89, 1991.Google Scholar
- 17.Pierre Weis and Xavier Leroy. Le langage Caml. InterÉditions, 1993.Google Scholar
- 18.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.Google Scholar