Recursive data structures

  • C. A. R. Hoare

DOI: 10.1007/BF00976239

Cite this article as:
Hoare, C.A.R. International Journal of Computer and Information Sciences (1975) 4: 105. doi:10.1007/BF00976239


The power and convenience of a programming language may be enhanced for certain applications by permitting treelike data structures to be defined by recursion. This paper suggests a pleasing notation by which such structures can be declared and processed; it gives the axioms which specify their properties, and suggests an efficient implementation method. It shows how a recursive data structure may be used to represent another data type, for example, a set. It then discusses two ways in which significant gains in efficiency can be made by selective updating of structures, and gives the relevant proof rules and hints for implementation. The examples show that a certain range of applications in symbol manipulation can be efficiently programmed without introducing the low-level concept of a reference into a high-level programming language.

Key words

Data structures recursive data structures axiomatic proof rules programming language design programming language features programming language implementation data representation symbol manipulation references (abolition of) pointers (abolition of) dynamic storage allocation 

Copyright information

© Plenum Publishing Corporation 1975

Authors and Affiliations

  • C. A. R. Hoare
    • 1
  1. 1.Department of Computer ScienceThe Queen's University of BelfastBelfastNorthern Ireland