Skip to main content

Static correctness of hierarchical procedures

  • Conference paper
  • First Online:
  • 142 Accesses

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

Abstract

A system of hierarchical, imperative, fully recursive types allows program fragments written for small types to be reused for all larger types. To exploit this property to enable type-safe hierarchical procedures, it is necessary to impose a static requirement on procedure calls. We introduce an example language and prove the existence of a sound requirement which preserves static correctness while allowing hierarchical procedures. This requirement is further shown to be optimal, in the sense that it imposes as few restrictions as possible. This establishes the theoretical basis for a powerful and general type hierarchy with static type checking, which enables 1st order polymorphism combined with (multiple) inheritance and specialization in a language with assignments.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

9 References

  1. Cardelli, Luca “Amber.” Proceedings of the Treizieme Ecole de Printemps d'Informatique Theorique, May 1985.

    Google Scholar 

  2. Cardelli, Luca & Wegner, Peter “On Understanding Types, Data Abstraction, and Polymorphism” in Computing Surveys, Vol 17 No 4, ACM 1985.

    Google Scholar 

  3. Courcelle, Bruno “Infinite Trees in Normal Form and Recursive Equations Having a Unique Solution” in Mathematical Systems Theory 13, 131–180. Springer-Verlag 1979.

    Google Scholar 

  4. Courcelle, Bruno “Fundamental Properties of Infinite Trees” in Theoretical Computer Science Vol 25 No 1, North-Holland 1983.

    Google Scholar 

  5. Reynolds, J.C. “Three approaches to type structure.”, In Mathematical Foundations of Software Development, LNCS Vol 185, Springer-Verlag 1985.

    Google Scholar 

  6. Schmidt, Erik M. & Schwartzbach, Michael I. “An Imperative Type Hierarchy with Partial Products” in Proceedings of MFCS'89, LNCS Vol 379, Springer-Verlag 1989.

    Google Scholar 

  7. Schwartzbach, Michael I. “Infinite Values in Hierarchical Imperative Types” in Proceedings of CAAP'90, LNCS, Springer-Verlag 1990.

    Google Scholar 

  8. Schwartzbach, Michael I. & Schmidt, Erik M. “Types and Automata”, In preparation.

    Google Scholar 

  9. Wirth, Niklaus “Type Extensions.”, In Transactions on Programming Languages and Systems Vol 10 No 2, ACM 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Michael S. Paterson

Rights and permissions

Reprints and permissions

Copyright information

© 1990 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Schwartzbach, M.I. (1990). Static correctness of hierarchical procedures. In: Paterson, M.S. (eds) Automata, Languages and Programming. ICALP 1990. Lecture Notes in Computer Science, vol 443. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0032020

Download citation

  • DOI: https://doi.org/10.1007/BFb0032020

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-52826-5

  • Online ISBN: 978-3-540-47159-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics