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.
9 References
Cardelli, Luca “Amber.” Proceedings of the Treizieme Ecole de Printemps d'Informatique Theorique, May 1985.
Cardelli, Luca & Wegner, Peter “On Understanding Types, Data Abstraction, and Polymorphism” in Computing Surveys, Vol 17 No 4, ACM 1985.
Courcelle, Bruno “Infinite Trees in Normal Form and Recursive Equations Having a Unique Solution” in Mathematical Systems Theory 13, 131–180. Springer-Verlag 1979.
Courcelle, Bruno “Fundamental Properties of Infinite Trees” in Theoretical Computer Science Vol 25 No 1, North-Holland 1983.
Reynolds, J.C. “Three approaches to type structure.”, In Mathematical Foundations of Software Development, LNCS Vol 185, Springer-Verlag 1985.
Schmidt, Erik M. & Schwartzbach, Michael I. “An Imperative Type Hierarchy with Partial Products” in Proceedings of MFCS'89, LNCS Vol 379, Springer-Verlag 1989.
Schwartzbach, Michael I. “Infinite Values in Hierarchical Imperative Types” in Proceedings of CAAP'90, LNCS, Springer-Verlag 1990.
Schwartzbach, Michael I. & Schmidt, Erik M. “Types and Automata”, In preparation.
Wirth, Niklaus “Type Extensions.”, In Transactions on Programming Languages and Systems Vol 10 No 2, ACM 1988.
Author information
Authors and Affiliations
Editor information
Rights 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