Skip to main content

From Z Specifications To Functional Implementations

  • Conference paper
Z User Workshop

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

Abstract

This paper examines work in the Systems and Software Engineering Division at British Telecom Research Laboratories which uses functional languages as part of a formal lifecycle. The use of functional languages allows programs to be quickly produced from formal specifications, and then enables the resulting program to be transformed into a correct implementation that meets the speed and size constraints of the specification.

The paper gives a small but complete example of how an initial functional program can be created from a Z specification, and demonstrates that the run-time behaviour of this program means that it cannot possibly be the final implementation. This initial program is then formally transformed into a program whose run-time behaviour could be considered acceptable.

The main advantage of this approach is that the engineer is working in an executable design language. This allows the benefits that are normally associated with prototyping to be gained in addition to the benefits that are associated with formal specification and program development.

The paper concludes that the use of functional programming technology is a valuable tool for the systematic construction of programs with regard to their specification.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R.S Bird. Algebraic identities for program calculation. The Computer Journal, 32: 122-126, 1989.

    Article  MathSciNet  Google Scholar 

  2. I.H. Sorenson B.P. Collins, J.E. Nicholls. Introducing formal methods: The CICS experience with Z. IBM, Hursley Park, 1987. Technical Report.

    Google Scholar 

  3. P. Gardiner C. Morgan, K. Robinson. On the refinement calculus. Oxford University Technical Monograph-PRG-70, 1988.

    Google Scholar 

  4. Brooks F. P. No silver bullet-essence and accidents of software engineering. Computer, 1987.

    Google Scholar 

  5. I. Hayes. Specification Case Studies. Prentice-Hall International, 1987.

    Google Scholar 

  6. P. Henderson. The Metoo method of software design. Technical report, University of Stirling, 1985.

    Google Scholar 

  7. M. Henson. Program development in the constructive set theory tk5. University of Essex-Technical Report.

    Google Scholar 

  8. H. Pull J. Darlington, A. Field. The unification of functional and logic languages. Technical report, Imperial College, London, 1986.

    Google Scholar 

  9. C.B Jones. Systematic Software Development Using VDM. Prentice-Hall International, 1986.

    Google Scholar 

  10. M.Firth J.Patel, C.Runciman. Starship meta-language requirements-discussion document. University of York project Deliverable.

    Google Scholar 

  11. T. Johnsson L. Augustsson. The Chalmers Lazy ML compiler. The Computer Journal, 32, 1989.

    Google Scholar 

  12. S. P. Lee. Executing Z specifications. Technical Report RT31/009/88, British Telecom Research Laboratories, 1988. Research and Technology Memorandum.

    Google Scholar 

  13. C Runciman M. Firth. Starship reference manual. Department of Computer Science, University of York, 1989.

    Google Scholar 

  14. S. Peyton-Jones. Software Engineering-The Decade of Change, chapter 9. Peter Peregrinus Ltd, 1986.

    Google Scholar 

  15. J Darlington R.M Burstall. A transformation system for developing recursive programs. Journal of the ACM, 24: 44-67, 1977.

    Article  MathSciNet  MATH  Google Scholar 

  16. S. J. Sadler. Nuclear reactor protection software-an application of VDM. Technical report, Rolls-Royce and Associates Limited.

    Google Scholar 

  17. M. Spivey. The Z Notation-A Reference Manual. Prentice Hall International, 1989.

    Google Scholar 

  18. D. Turner. Functional programs as executable specifications. Phil. Transactions of the Royal Society, 312: 363-388, 1984.

    Article  MATH  Google Scholar 

  19. D. Turner. An overview of Miranda. SIGPLAN Notices, December 1986.

    Google Scholar 

  20. J. Wilson. A case study in Z refinement. British Telecom Research Laboratories, 1989. Technical Report.

    Google Scholar 

  21. T.S.E Maibaum W.M. Turski. The Specification Of Computer Programs. International Computer Science Series, 1987.

    Google Scholar 

  22. J.B. Wordsworth. Specifying and refining programs with Z. In Proceedings of Second IEE/BCS Conference on Software Engineering, 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1990 Springer-Verlag London

About this paper

Cite this paper

Johnson, M., Sanders, P. (1990). From Z Specifications To Functional Implementations. In: Nicholls, J.E. (eds) Z User Workshop. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3877-8_6

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-3877-8_6

  • Publisher Name: Springer, London

  • Print ISBN: 978-3-540-19627-3

  • Online ISBN: 978-1-4471-3877-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics