Acta Informatica

, Volume 11, Issue 2, pp 119–137 | Cite as

Constructing a theory of a data structure as an aid to program development

  • C. B. Jones


This paper illustrates an extension to the method of developing programs via abstract data types. In order to make the proofs shorter and more intuitive a collection of lemmas (theory) is constructed for the main data types (trees). The problem used as an example is the recording of equivalence relations, one of the programs given is based on the Fischer-Galler algorithm.


Information System Operating System Data Structure Communication Network Information Theory 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bjorner, D., Jones, C.B. (eds.): The Vienna development method: The meta-language. In: Lecture notes in computer science, Vol. 61. Berlin-Heidelberg-New York: Springer 1978Google Scholar
  2. 2.
    Burstall, R.M., Goguen, J.A.: Putting theories together to make specifications. In: Procs. 5th Int. Joint Conf. Artificial Intelligence, MIT, pp. 1045–1058, 1977Google Scholar
  3. 3.
    Correll, C.H.: Proving programs correct through refinement. Acta informatica 9, 121–132 (1978)Google Scholar
  4. 4.
    Dahl, O.-J.: Can program proving be made practical? Oslo University, Institute of Informatics, Report No. 33, ISBN 82-90230-26-5, May 1978Google Scholar
  5. 5.
    Dijkstra, E.W.: A discipline of programming. Englewood Cliffs, N.J.: Prentice-Hall 1976Google Scholar
  6. 6.
    Goguen, J.A., Thatcher, J.W., Wagner, E.G., Wright, J.B.: Abstract data types as initial algebras and correctness of data representations. Conference on Computer Graphics, pp. 89–93, May 1975Google Scholar
  7. 7.
    Guttag, J.V.: The specification and application to programming of abstract data types. Ph. D. Thesis, University of Toronto, 1975Google Scholar
  8. 8.
    Guttag, J.V., Horowitz, E., Musser, D.R.: The design of data type specifications. University of Southern California, ISI/RR-76-49, Nov. 1976Google Scholar
  9. 9.
    Hoare, C.A.R.: Proof of correctness of data representations. Acta Informat. 1, 271–281 (1972)Google Scholar
  10. 10.
    Jones, C.B.: Formal development of correct algorithms: An example based on Earley's recogniser. ACM SIGPLAN Notices 7, No. 1 (1972)Google Scholar
  11. 11.
    Jones, C.B.: Formal development of programs. IBM (Hursley) TR12.117, June 1973Google Scholar
  12. 12.
    Jones, C.B.: Formal definition in compiler development. IBM (Vienna) TR25.145, Feb. 1976Google Scholar
  13. 13.
    Jones, C.B.: Program development using data abstraction. Presented at IFIP WG2.3, Grenoble, Dec. 1976Google Scholar
  14. 14.
    Jones, C.B.: Implementation bias in constructive specifications. Manuscript, Sept. 1977Google Scholar
  15. 15.
    Liskov, B.H., Zillies, S.N.: Specification techniques for data abstractions. IEEE Trans. SE-1, 7–19 (1975)PubMedGoogle Scholar
  16. 16.
    London, R.L.: A correctness proof of the Fischer-Galler algorithm using inductive assertions in [21] (1972)Google Scholar
  17. 17.
    Milner, R.: A formal notion of simulation between programs. Swansea University Memo No. 14, Oct. 1970Google Scholar
  18. 18.
    Morris, J.H., Jr.: A correctness proof using recursively defined functions in [21] (1972)Google Scholar
  19. 19.
    Nakajima, R., Honda, M., Nakahara, H.: Describing and verifying programs with abstract data types. In: Procs. IFIP Working Conf. on Formal Description of Programming Concepts (E.J. Neuhold, ed.), pp. 527–556 Amsterdam: North-Holland 1978Google Scholar
  20. 20.
    Reynolds, J.C.: Reasoning about arrays, Comm. ACM (submitted, 1978)Google Scholar
  21. 21.
    Rustin, R. (ed.): Formal semantics of programming languages. Englewood Cliffs, N.J.: Prentice-Hall 1972Google Scholar
  22. 22.
    Walk, K, Alber, K., Fleck, M., Goldmann, H., Lauer, P., Moser, E., Oliva, P., Stigleitner, H., Zeisel, G.: Abstract syntax and interpretation of PL/I (ULD version III), IBM (Vienna) TR25.098, April 1969Google Scholar

Copyright information

© Springer-Verlag 1979

Authors and Affiliations

  • C. B. Jones
    • 1
  1. 1.International Education CentreIBM European Systems Research InstituteLa HulpeBelgium

Personalised recommendations