Skip to main content

An Algebraic Framework for Separate Type-Checking

  • Conference paper
  • First Online:
Book cover Recent Trends in Algebraic Development Techniques

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1589))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Article  Google Scholar 

  2. D. Ancona. Modular Formal Frameworks for Module Systems. PhD thesis, Dipartimento di Informatica, Università di Pisa, March 1998.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. D. Ancona and E. Zucca. A theory of mixin modules: basic and derived operators. Mathematical Structures in Computer Science, 1998. To appear.

    Google Scholar 

  5. D. Aspinall. Type Systems for Modular Programs and Specications. PhD thesis, Department of Computer Science, University of Edinburgh, August 1997.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. L. Cardelli. Program fragments, linking, and modularization. In Proc. 24th ACM Symp. on Principles of Programming Languages, pages 266–277. ACM Press, January 1997.

    Google Scholar 

  10. 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.

    Chapter  Google Scholar 

  11. J. Courant. MC: un calcul de modules pour les systèmes de types purs. PhD thesis, École normale supérieure de Lyon, 1998.

    Google Scholar 

  12. D. Duggan and C. Sourelis. Mixin modules. In Intl. Conf. on Functional Programming, Philadelphia, May 1996. ACM Press.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. J. A. Goguen and R. Burstall. Institutions: abstract model theory for specication and programming. Journ. ACM, 39(1):95–146, 1992.

    Article  Google Scholar 

  16. 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.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. R. Harper, D. Sannella, and A. Tarlecki. Structure theory presentations and logic representations. Annals of Pure and Applied Logic, 67:113–160, 1994.

    Article  MathSciNet  Google Scholar 

  19. M. P. Jones. A system of constructor classes: Overloading and implicit higher-order polymorphism. Journal of Functional Programming, 5(1), January 1995.

    Google Scholar 

  20. 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.

    Google Scholar 

  21. X. Leroy. Manifest types, modules and separate compilation. In Proc. 21st ACM Symp. on Principles of Programming Languages, pages 109–122. ACM Press, 1994.

    Google Scholar 

  22. X. Leroy. Applicative functors and fully transparent higher-order modules. In Proc. 22nd ACM Symp. on Principles of Programming Languages. ACM Press, 1995.

    Google Scholar 

  23. X. Leroy. A modular module system. Technical Report 2866, INRIA, April 1996.

    Google Scholar 

  24. 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.

    Google Scholar 

  25. J. Meseguer. General logic. In Logic Colloquium ’87, pages 275–329. North Holland, 1989.

    Google Scholar 

  26. B. Meyer. Eiffel: The language. Prentice Hall, 1992.

    Google Scholar 

  27. R. Milner, M. Tofte, and R. Harper. The Denition of Standard ML. The MIT Press, Cambridge, Massachussetts, 1990.

    Google Scholar 

  28. M. Odersky and P. Wadler. Pizza into Java: Translating theory into practice. In Proc. 24th ACM Symposium on Principles of Programming Languages, January 1997.

    Google Scholar 

  29. D.L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 5(12):1053–1058, December 1972.

    Article  Google Scholar 

  30. D. Sannella, S. Sokolowoski, and A. Tarlecki. Toward formal development of programs from algebraic specications: Parameterisation revisited. Acta Informatica, 29:689–736, 1992.

    Article  MathSciNet  Google Scholar 

  31. D. Sannella and A. Tarlecki. Specication in an arbitrary institution. Information and Computation, 76:165–210, 1988.

    Article  MathSciNet  Google Scholar 

  32. 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.

    Article  Google Scholar 

  33. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics