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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
R.S Bird. Algebraic identities for program calculation. The Computer Journal, 32: 122-126, 1989.
I.H. Sorenson B.P. Collins, J.E. Nicholls. Introducing formal methods: The CICS experience with Z. IBM, Hursley Park, 1987. Technical Report.
P. Gardiner C. Morgan, K. Robinson. On the refinement calculus. Oxford University Technical Monograph-PRG-70, 1988.
Brooks F. P. No silver bullet-essence and accidents of software engineering. Computer, 1987.
I. Hayes. Specification Case Studies. Prentice-Hall International, 1987.
P. Henderson. The Metoo method of software design. Technical report, University of Stirling, 1985.
M. Henson. Program development in the constructive set theory tk5. University of Essex-Technical Report.
H. Pull J. Darlington, A. Field. The unification of functional and logic languages. Technical report, Imperial College, London, 1986.
C.B Jones. Systematic Software Development Using VDM. Prentice-Hall International, 1986.
M.Firth J.Patel, C.Runciman. Starship meta-language requirements-discussion document. University of York project Deliverable.
T. Johnsson L. Augustsson. The Chalmers Lazy ML compiler. The Computer Journal, 32, 1989.
S. P. Lee. Executing Z specifications. Technical Report RT31/009/88, British Telecom Research Laboratories, 1988. Research and Technology Memorandum.
C Runciman M. Firth. Starship reference manual. Department of Computer Science, University of York, 1989.
S. Peyton-Jones. Software Engineering-The Decade of Change, chapter 9. Peter Peregrinus Ltd, 1986.
J Darlington R.M Burstall. A transformation system for developing recursive programs. Journal of the ACM, 24: 44-67, 1977.
S. J. Sadler. Nuclear reactor protection software-an application of VDM. Technical report, Rolls-Royce and Associates Limited.
M. Spivey. The Z Notation-A Reference Manual. Prentice Hall International, 1989.
D. Turner. Functional programs as executable specifications. Phil. Transactions of the Royal Society, 312: 363-388, 1984.
D. Turner. An overview of Miranda. SIGPLAN Notices, December 1986.
J. Wilson. A case study in Z refinement. British Telecom Research Laboratories, 1989. Technical Report.
T.S.E Maibaum W.M. Turski. The Specification Of Computer Programs. International Computer Science Series, 1987.
J.B. Wordsworth. Specifying and refining programs with Z. In Proceedings of Second IEE/BCS Conference on Software Engineering, 1988.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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