Skip to main content
Log in

Data refinement by calculation

  • Published:
Acta Informatica Aims and scope Submit manuscript

Summary

Data refinement is the systematic substitution of one data type for another in a program. Usually, the new data type is more efficient than the old, but possibly more complex; the purpose of the data refinement in that case is to make progress in program construction from more abstract to more concrete formulations. A recent trend in program construction is to calculate programs from their specifications; that contrasts with proving that a given program satisfies some specification. We investigate to what extent the trend can be applied to data refinement.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Back, R.-J.: On the correctness of refinement steps in program development. Report A-1978-4, Department of Computer Science, University of Helsinki, 1978

  2. Back, R.-J.: Correctness preserving program refinements: Proof theory and applications. Tract 131, Mathematisch Centrum, Amsterdam, 1980

    Google Scholar 

  3. Back, R.-J.: Procedural abstraction in the refinement calculus. Report Ser. A 55, Departments of Information Processing and Mathematics, Swedish University of Åbo, Åbo, Finland, 1987

    Google Scholar 

  4. Back, R.-J.: A calculus of refinements for program derivations. Acta Inf. 25, 593–624 (1988)

    Google Scholar 

  5. Bird, R.S.: An introduction to the theory of lists. Technical monograph PRG-56, Programming Research Group, 8-11 Keble Road, Oxford OX1 3QD, UK, October 1986

    Google Scholar 

  6. Boom, H.: A weaker precondition for loops. Thrans. Prog. Lang. Syst. 4, 668–677 (1982)

    Google Scholar 

  7. Dijkstra, E.W.: A Discipline of Programming. Englewood Cliffs: Prentice-Hall 1976

    Google Scholar 

  8. Gardiner, P.H.B., Morgan, C.C.: Data refinement of predicate transformers. Theor. Comput. Sci. (to appear). Reprinted in [21]

  9. Gries, D., Prins, J.: A new notion of encapsulation. In: Symp. Language Issues in Programming Environments, SIGPLAN, June 1985

  10. Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12, 576–580 (1969)

    Google Scholar 

  11. Hoare, C.A.R.: Proof of correctness of data representations. Acta Inf. 1, 271–281 (1972)

    Google Scholar 

  12. Hoare, C.A.R., He, J.F., Sanders, J.W.: Prespecification in data refinement. Inf. Proc. Lett. 25, 71–76 (1987)

    Google Scholar 

  13. Jones, C.B.: Systematic Software Development using VDM. Prentice Hall, 1986

  14. Josephs, M.B.: The data refinement calculator for Z specifications. Inf. Process. Lett. 27, 29–33 (1988)

    Google Scholar 

  15. Lucas, P.: Two constructive realizations of the block concept and their equivalence. Technical Report TR 25.085, IBM Laboratory Vienna, 1968

  16. Morgan, C.C.: Auxiliary variables in data refinement. Inf. Process. Lett. 29, 293–296 (1988) Reprinted in [21])

    Google Scholar 

  17. Morgan, C.C.: Data refinement using miracles. Inf. Process. Lett. 26, 243–246 (1988) (Reprinted in [21])

    Google Scholar 

  18. Morgan, C.C.: Procedures, parameters, and abstraction: Separate concerns. Sci. Comput. Progr. 11, 17–28 (1988) (Reprinted in [21])

    Google Scholar 

  19. Morgan, C.C.: The specification statement. Trans. Prog. Lang. Syst. 10 (1988) (Reprinted in [21])

  20. Morgan, C.C., Robinson, K.A.: Specification statements and refinement. IBM J. Res. Dev. 31 (1987) (Reprinted in [21])

  21. Morgan, C.C., Robinson, K.A., Gardiner, P.H.B.: On the refinement calculus. Technical Report PRG-70, Programming Research Group, 1988

  22. Morris, J.M.: Invariance theorems for recursive procedures. (In draft)

  23. Morris, J.M.: Laws of data refinement. Acta Inf. (to appear)

  24. Morris, J.M.: A theoretical basis for stepwise refinement and the programming calculus. Sci.Comput. Progr. 9, 298–306 (1987)

    Google Scholar 

  25. Nelson, G.: A generalization of Dijkstra's calculus. Technical Report 16, Digital Systems Research Center, April 1987

Download references

Author information

Authors and Affiliations

Authors

Additional information

Supported by British Petroleum Ltd.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Morgan, C., Gardiner, P.H.B. Data refinement by calculation. Acta Informatica 27, 481–503 (1990). https://doi.org/10.1007/BF00277386

Download citation

  • Received:

  • Issue Date:

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

Keywords

Navigation