Skip to main content

A normalizing calculus with overloading and subtyping

  • Conference paper
  • First Online:
Theoretical Aspects of Computer Software (TACS 1994)

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

Included in the following conference series:

Abstract

Recently, a new calculus with overloading and subtyping was presented by Castagna, Ghelli, and Longo [CGL94]. This calculus, λ&-calculus, is an extension of the simply typed λ-calculus and is promising in that it explains the computational mechanism of object-oriented languages from a new viewpoint. However, in λ&-calculus, the interaction of overloading and subtyping causes some unexpected properties such as non-normalization and the difficulties in constructing a model. In this paper, in order to study this interaction, we present modifications of this calculus so that the exact type of a term is preserved, and investigate their syntactic and semantic properties in detail. We define two calculi λ&C and λ&C * corresponding to two possible meanings of an overloaded type. They have completely different properties though they only differ slightly in reduction rules. Strong normalization holds in λ&C * though it is not the case in λ&C, and transitivity of coercions holds in λ&C though it is not the case in λ&C *. The semantics of λ&C * can be given through the translation to a calculus without subtyping. On the other hand, a semantics of λ&C cannot be given easily because of the circular structure it has.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bard Bloom. Can lcf be topped?, flat lattice models of typed λ-calculus. Information and Computation, Vol. 87, pp. 264–301, 1990.

    Google Scholar 

  2. V. Breazu-Tannen, T. Coquand, C. A. Gunter, and A. Scedrov. Inheritance as implicit coercion. Information and Computation, Vol. 93, pp. 172–221, 1991.

    Google Scholar 

  3. V. Breazu-Tannen, C. A. Gunter, and A. Scedrov. Computing with coercions. In Proceedings, ACM Conference on Lisp and Functional Programming, pp. 44–59, 1990.

    Google Scholar 

  4. Giuseppe Castagna. F& <: integrating parametric with’ ad hoc’ explicit polymorphism. In DBPL-4 Workshops in Computing series, Springer-Verlag, 1993.

    Google Scholar 

  5. Giuseppe Castagna, Giorgio Ghelli, and Giuseppe Longo. A calculus for overloaded functions with subtyping. In Proc. ACM Conf. on LISP and Functional Programming, 1992. Extended abstract of [CGL94].

    Google Scholar 

  6. Giuseppe Castagna, Giorgio Ghelli, and Giuseppe Longo. The semantic of λ&-early: a calculus with overloading and early binding. In International conference on typed lambda calculi and applications. LLNCS664, 1993.

    Google Scholar 

  7. Giuseppe Castagna, Giorgio Ghelli, and Giuseppe Longo. A calculus for overloaded functions with subtyping. Information and Computation, Vol. to appear, 1994.

    Google Scholar 

  8. J. Y. Girard, Y. Lafont, and P. Taylor. Proof and Types. Cambridge University Press, 1989.

    Google Scholar 

  9. Y. Kuno. Dynamic manipulation of types in misty — a statically typed object-oriented programming language. Advances in Software Science and Technology, Vol. 4, pp. 163–188, 1992.

    Google Scholar 

  10. R. Milner. Fully abstract models of typed λ-calculus. Theoret. Comput. Sci, Vol. 4, pp. 1–22, 1977.

    Google Scholar 

  11. A. Ohori and P. Buneman. Static type inference for parametric classes. In Proceedings, OOPSLA89: ACM conference on Object Oriented Programming Systems,Languages, and Applications, pp. 445–455, 1989.

    Google Scholar 

  12. D. Rémy. Typechecking records and variants in a natural extension of ml. In Proceedings, The Sixteenth Annual Symposium on Principles of Programming Languages, pp. 77–88, 1989.

    Google Scholar 

  13. Bjarne Stroustrup. the C++ Programming Language (2nd Ed.). Addison Wesley, 1991.

    Google Scholar 

  14. Masako Takahashi. Parallel reductions in λ-calculus. J. Symbolic Computation, Vol. 7, pp. 113–123, 1989. Also Parallel Reductions in λ-Calculus, Revised version (Research Report, Tokyo Institute of Technology, 1992).

    Google Scholar 

  15. Hideki Tsuiki. A Record Calculus with a Merge Operator. PhD thesis, Keio University, 1992.

    Google Scholar 

  16. Mitchell Wand. Complete type inference for simple objects. In Proceedings, IEEE Symposium on Logic in Computer Science, pp. 37–44, 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Masami Hagiya John C. Mitchell

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Tsuiki, H. (1994). A normalizing calculus with overloading and subtyping. In: Hagiya, M., Mitchell, J.C. (eds) Theoretical Aspects of Computer Software. TACS 1994. Lecture Notes in Computer Science, vol 789. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57887-0_100

Download citation

  • DOI: https://doi.org/10.1007/3-540-57887-0_100

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57887-1

  • Online ISBN: 978-3-540-48383-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics