Hierarchical refinement of A Z specification

  • Dave Neilson
Session 7 Programming Methodology
Part of the Lecture Notes in Computer Science book series (LNCS, volume 287)


In this paper we present a rigorous refinement method that transforms a hierarchically-structured Z specification into a correct implementation, using a set of transformation rules based on the pre- and post-conditions inherent in the specification language. The method allows for the full testing of each hierarchy of the specification, facilitating the early detection of specification error, and provides for a clear indication of the effect of specification change on the implementation, simplifying the task of program maintenance. The paper is based on the specification and implementation of a text editor.


Sequential Composition Text Editor Concrete State Data Refinement Abstract Specification 
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]
    J.-R. Abrial, Specification or how to give reality to abstraction, Technology and Science of Informatics, vol. 3 no. 3, 1984.Google Scholar
  2. [2]
    E. G. Dijkstra, A Discipline of Programming, Prentice-Hall, 1976.Google Scholar
  3. [3]
    D. Gries, The Science of Programming, Springer-Verlag, 1981.Google Scholar
  4. [4]
    I. J. Hayes (ed.), Specification Case Studies, Prentice-Hall, 1987.Google Scholar
  5. [5]
    P. Henderson, Functional Programming, Formal Specification, and Rapid Prototyping, IEEE Trans. Soft. Eng., Vol. SE 12, No. 2, 1986.Google Scholar
  6. [6]
    C. A. R. Hoare, Proof of Correctness of Data Representations, Acta Informatica 1, 1972.Google Scholar
  7. [7]
    C. A. R. Hoare, He Jifeng, J. W. Sanders, Data Refinement Refined, to appear.Google Scholar
  8. [8]
    J. J. Horning, Putting Formal Specifications to Productive Use, Proceedings of the Joint IBM/University of Newcastle upon Tyne Seminar, 1983.Google Scholar
  9. [9]
    C. B. Jones, Systematic Software Development Using VDM, Prentice-Hall, 1986.Google Scholar
  10. [10]
    C. C. Morgan, The Schema Language, Programming Research Group, Oxford University, 1984.Google Scholar
  11. [11]
    P. Naur, Intuition in software development, Proc. Int. Joint. Conf. on Theory and Practice of Software Development (TAPSOFT), 1985 (LNCS 186).Google Scholar
  12. [12]
    D. S. Neilson, Formal Specification Of An Occam Editor, Programming Research Group, Oxford University, 1985. M.Sc. Thesis.Google Scholar
  13. [13]
    D. S. Neilson, A Rigorous Refinement Method For Z, Programming Research Group, Oxford University. D.Phil. Thesis, to appear.Google Scholar
  14. [14]
    J.M.Spivey, Understanding Z: A Specification Language and its Formal Semantics, Programming Research Group, Oxford University, 1986. D.Phil Thesis.Google Scholar
  15. [15]
    B. Sufrin, Formal Specification of a Display Editor, PRG-21, Programming Research Group, Oxford University, 1981.Google Scholar
  16. [16]
    B. Sufrin, C. C. Morgan, I. H. Sørensen, I. J. Hayes, Notes for a Z Handbook, Part 1 — Mathematical Language, Programming Research Group, Oxford University, 1985.Google Scholar
  17. [17]
    D. A. Turner, Functional programs as executable specifications, Mathematical Logic and Programming Languages (C.A.R.Hoare and J.C.Shepherdson eds.), Prentice-Hall, 1984.Google Scholar
  18. [18]
    P.Wadler, Implementation of the VED text editor, Programming Research Group, Oxford University, 1984.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Dave Neilson
    • 1
  1. 1.Programming Research GroupOxford UniversityOxford

Personalised recommendations