Abstract
Universal techniques for transforming code from a typical procedural language to Z-like specifications will be discussed first; the latter make good starting points for the post hoc validation of programs which lack formal documentation. We prove properties of classes of programs, before we move on to discuss the further set of techniques we use to prove properties of individual programs. In the foundational work, we provide a concise algebraic language and axioms based on the simple mathematical theory of monads, and show that it is sufficiently expressive. We then give practical validation techniques which extend these transformations and provide several examples of such heuristically driven program validations.
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
Dijkstra E. W. A Discipline Of Programming Prentice Hall 1968.
Ward M. From Assembler To Z Durham University 1989.
UNIFORM: A Language Geared to System Description and Transformation, REDO (ESPRIT 2 Project P2487) document TN-NIL-1002.
An Axiomatic Semantics for UNIFORM. REDO Document TN-PRG-1011
Kahn, G. The Semantics of a Simple Language for Parallel Programming Information Processing 74, North Holland Amsterdam pp. 471–475 (1974).
Josephs, M. The Data Refinement Calculator for Z Specifications Inf. Proc. Lett., Vol 27, Nol, pp 29–33, 1988.
Bowen J., Gimson R., Topp-Jorgensen S. Specifying System Implementations in Z Technical monograph PRG-63. 1988.
Morgan C. et al. On the Refinement Calculus. PRG-70 Technical Monograph. 1988.
Gries D. The Science of Programming Springer-Verlag 1981.
Stark, E. W. On The Relations Computable by a Class of Concurrent Automata Dept. Of Computer Science, State University of New York. 1989.
Morgan C.C. Programming From Specifications Prentice Hall International Series in Computer Science, Prentice Hall International 1990.
Good D. Mechanical Proofs About Computer Programs Artificial Intelligence and Software Engineering, Eds Rich C., Walters C. Morgan Korfmann Ltd 1984.
Milner, R. Using Algebra for Concurrency: Some Approaches Springer-Verlag LNCS 207 Analysis of Concurrent Systems.
Dershowitz N. Program Abstraction and Instanciation ACM Transactions on Programming Languages and Systems, Vol 7, No. 3, July 1985, pp 446–477.
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
Lano, K., Breuer, P.T. (1990). From Programs to Z Specifications. In: Nicholls, J.E. (eds) Z User Workshop. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3877-8_4
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3877-8_4
Publisher Name: Springer, London
Print ISBN: 978-3-540-19627-3
Online ISBN: 978-1-4471-3877-8
eBook Packages: Springer Book Archive