Abstract
This paper presents an illustrative case study in the use of a new method of writing Haskell programs from Z specifications. Whereas previous methods of writing functional programs from formal specifications have relied either too little or too much on the intellectual skills of the programmer, this new approach aims to strikes a balance, by providing what is essentially a tool-kit, consisting of a framework of code together with a set of rules and guidelines for the programmer.
Preview
Unable to display preview. Download preview PDF.
References
Jonathan P. Bowen and Michael G. Hinchey. Ten commandments of formal methods. IEEE Computer, 28(4):56–63, April 1995.
J. M. Spivey. The Z Notation — A Reference Manual. International Series in Computer Science. Prentice Hall, Hemel Hempstead, 2nd edition, 1992.
David Gries. The Science of Programming. Texts and Monographs in Computer Science. Springer-Verlag, New York, 1981.
Carroll Morgan. Programming from Specifications. International Series in Computer Science. Prentice Hall, Hemel Hempstead, 1990.
John Backus. Can programming be liberated from the Von Neumann style? A functional style and its algebra of programs. Communications of the ACM, 21(8):613–41, 1978.
Paul Hudak, Simon Peyton Jones, Philip Wadler, et al. Report on the programming language Haskell, a non-strict, purely functional language. SIGPLAN Notices, 27, May 1992. Version 1.2.
G. O'Neill. Automatic translation of VDM specifications into Standard ML programs. Technical Report DITC 196/92, National Physical Laboratory, Teddington, 1992.
Paulo Borba and Silvio Meira. From VDM specifications to functional prototypes. Journal of Systems and Software, 21(3):267–78, June 1993.
Michael Johnson and Paul Sanders. From Z specifications to functional implementations. In John E. Nicholls, editor, Z User Workshop, Oxford 1989, Workshops in Computing, pages 86–112. Springer-Verlag, 1990.
Linda B. Sherrell and Doris L. Carver. Experiences in translating Z designs to Haskell implementations. Software — Practice and Experience, 24(12): 1159–78, December 1994.
Antoni Diller. Z: An Introduction to Formal Methods. John Wiley and Sons, Chichester, 2nd edition, 1994.
Howard S. Goodman. The Z-into-Haskell tool-kit. Technical Report CSR-95-1, School of Computer Science, University of Birmingham, April 1995. Available from the author's WWW home-page, URL http://www.cs.bham.ac.uk/∼hsg/.
Philip Wadler. The essence of functional programming. In 19th ACM Symposium on Principles of Programming Languages, January 1992.
Howard S. Goodman. Animating Z specifications in Haskell using a monad. Technical Report CSR-93-10, School of Computer Science, University of Birmingham, August 1993. Revised with corrections, April 1995. Available from the author's WWW homepage, URL http://www.cs.bham.ac.uk/∼hsg/.
Samuel H. Valentine. Z—, an executable subset of Z. In John E. Nicholls, editor, Z User Workshop, York 1991, Workshops in Computing, pages 157–187. Springer-Verlag, 1992.
Ben F. Potter, Jane E. Sinclair, and David Till. An Introduction to Formal Specification and Z. International Series in Computer Science. Prentice Hall, Hemel Hempstead, 1990.
Ian J. Hayes and Cliff B. Jones. Specifications are not (necessarily) executable. Software Engineering Journal, 4(6):330–8, 1989.
Antoni Diller. Specifying interactive programs in Z. Technical Report CSR-90-13, School of Computer Science, University of Birmingham, August 1990.
Ian J. Hayes, editor. Specification Case Studies. International Series in Computer Science. Prentice Hall, Hemel Hempstead, 2nd edition, 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Goodman, H.S. (1995). The Z-into-Haskell tool-kit: An illustrative case study. In: Bowen, J.P., Hinchey, M.G. (eds) ZUM '95: The Z Formal Specification Notation. ZUM 1995. Lecture Notes in Computer Science, vol 967. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60271-2_131
Download citation
DOI: https://doi.org/10.1007/3-540-60271-2_131
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60271-2
Online ISBN: 978-3-540-44782-5
eBook Packages: Springer Book Archive