Abstract
We address the problem of dening an algebraic framework for modularization supporting separate type-checking. In order to do that we introduce the notions of abstract type system and logic of constraints and we present a canonical construction of a model part, on top of a logic of constraints. This canonical construction works under standard assumptions on the underlying type system.
We show that the framework is suitable for dening the static and dynamic semantics of module languages, by giving a concrete example of construction on top of the type system of a simple typed module language. As a result, the subtyping relation between module interfaces is captured in a natural way by the notion of signature morphism.
★
This work has been partially supported by Murst 40% — Modelli della computazione e dei linguaggi di programmazione and CNR — Formalismi per la specica 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
R. Amadio and L. Cardelli. Subtyping recursive types. ACM Transactions on Programming Languages and Systems, 15(4):575–631, September 1993. Extended abstract in POPL 1991.
D. Ancona. Modular Formal Frameworks for Module Systems. PhD thesis, Dipartimento di Informatica, Università di Pisa, March 1998.
D. Ancona and E. Zucca. An algebra of mixin modules. In F. Parisi-Presicce, editor, Proc. 12th International Workshop, WADT ’97, Tarquinia, Italy, June 1997. Selected Papers, volume 1376 of Lecture Notes in Computer Science, Berlin, 1998. Springer Verlag. To appear.
D. Ancona and E. Zucca. A theory of mixin modules: basic and derived operators. Mathematical Structures in Computer Science, 1998. To appear.
D. Aspinall. Type Systems for Modular Programs and Specications. PhD thesis, Department of Computer Science, University of Edinburgh, August 1997.
G. Banavar and G. Lindstrom. An application framework for module composition tools. In Proc. of European Conference on Object-Oriented Programming number 1098 in Lecture Notes in Computer Science, pages 91–113. Springer Verlag, July 1996.
S. Bloom and E. Wagner. Many-sorted theories and their algebras, with examples from computer science. In US-French Joint Symp. on the Applications of Algebra to language denition and Compilation, Fontainebleau, 1982.
G. Bracha and G. Lindstrom. Modularity meets inheritance. In Proc. International Conference on Computer Languages, pages 282–290, San Francisco, April 1992. IEEE Computer Society.
L. Cardelli. Program fragments, linking, and modularization. In Proc. 24th ACM Symp. on Principles of Programming Languages, pages 266–277. ACM Press, January 1997.
J. Courant. An applicative module calculus. In M. Bidoit and M. Dauchet, editors, Proc. TAPSOFT ’97: Theory and Practice of Software Development, number 1217 in Lecture Notes in Computer Science, pages 622–636. Springer Verlag, April 1997.
J. Courant. MC: un calcul de modules pour les systèmes de types purs. PhD thesis, École normale supérieure de Lyon, 1998.
D. Duggan and C. Sourelis. Mixin modules. In Intl. Conf. on Functional Programming, Philadelphia, May 1996. ACM Press.
H. Ehrig and B. Mahr. Fundamentals of Algebraic Specication 2. Module Specications and Constraints, volume 21 of EATCS Monograph in Computer Science. Springer Verlag, 1990.
J. Fiadeiro and A. Sernadas. Structuring theories on consequence. In Selected Papers from the 5th Workshop on Specication of Abstract Data Types, number 332 in Lecture Notes in Computer Science, pages 44–72. Springer Verlag, 1988.
J. A. Goguen and R. Burstall. Institutions: abstract model theory for specication and programming. Journ. ACM, 39(1):95–146, 1992.
R. Harper and M. Lillibridge. A type theoretic approach to higher-order modules with sharing. In Proc. 21st ACM Symp. on Principles of Programming Languages, pages 127–137. ACM Press, 1994.
R. Harper, M. Lillibridge, and E. Moggi. Higher-order modules and the phase distinction. In Proc. 17th ACM Symp. on Principles of Programming Languages, pages 341–354, S. Francisco, CA, January 1990. ACM Press.
R. Harper, D. Sannella, and A. Tarlecki. Structure theory presentations and logic representations. Annals of Pure and Applied Logic, 67:113–160, 1994.
M. P. Jones. A system of constructor classes: Overloading and implicit higher-order polymorphism. Journal of Functional Programming, 5(1), January 1995.
M. P. Jones. Using parameterized signatures to express modular structure. In Proc. 23rd ACM Symp. on Principles of Programming Languages, pages 68–78, St. Petersburg Beach, Florida, Jan 1996. ACM Press.
X. Leroy. Manifest types, modules and separate compilation. In Proc. 21st ACM Symp. on Principles of Programming Languages, pages 109–122. ACM Press, 1994.
X. Leroy. Applicative functors and fully transparent higher-order modules. In Proc. 22nd ACM Symp. on Principles of Programming Languages. ACM Press, 1995.
X. Leroy. A modular module system. Technical Report 2866, INRIA, April 1996.
M. Van Limberghen and T. Mens. Encapsulation and composition as orthogonal operators on mixins: a solution to multiple inheritance problems. Object Oriented Systems, 3:1–30, 1996.
J. Meseguer. General logic. In Logic Colloquium ’87, pages 275–329. North Holland, 1989.
B. Meyer. Eiffel: The language. Prentice Hall, 1992.
R. Milner, M. Tofte, and R. Harper. The Denition of Standard ML. The MIT Press, Cambridge, Massachussetts, 1990.
M. Odersky and P. Wadler. Pizza into Java: Translating theory into practice. In Proc. 24th ACM Symposium on Principles of Programming Languages, January 1997.
D.L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 5(12):1053–1058, December 1972.
D. Sannella, S. Sokolowoski, and A. Tarlecki. Toward formal development of programs from algebraic specications: Parameterisation revisited. Acta Informatica, 29:689–736, 1992.
D. Sannella and A. Tarlecki. Specication in an arbitrary institution. Information and Computation, 76:165–210, 1988.
A. Tarlecki, R.M. Burstall, and J.A. Goguen. Some fundamental algebraic tools for the semantics of computation–Part III: Indexed categories. TCS, 91:239–264, 1991.
V. Trifonov and S. Smith. Subtyping constrained types. In Proc. of the Third International Static Analysis Symposium, volume 1145 of Lecture Notes in Computer Science, pages 349–365. Springer Verlag, 1996.
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. (1999). An Algebraic Framework for Separate Type-Checking. In: Fiadeiro, J.L. (eds) Recent Trends in Algebraic Development Techniques. Lecture Notes in Computer Science, vol 1589. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48483-3_1
Download citation
DOI: https://doi.org/10.1007/3-540-48483-3_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66246-4
Online ISBN: 978-3-540-48483-7
eBook Packages: Springer Book Archive