Z notation

An example of a formal specification (in Spanish) using the Z notation, with named schema boxes, including declarations and predicates

The Z notation /ˈzɛd/ is a formal specification language used for describing and modelling computing systems.[1] It is targeted at the clear specification of computer programs and computer-based systems in general.

History

In 1974, Jean-Raymond Abrial[2] published "Data Semantics".[3] He used a notation that would later be taught in the University of Grenoble until the end of the 1980s.

While at EDF (Électricité de France), working with Bertrand Meyer, Abrial also worked on developing Z.[4] Z was originally proposed by Abrial in 1977 with the help of Steve Schuman and Bertrand Meyer.[5] The Z notation is used in the 1980 book Méthodes de programmation.[6]

Z was developed further at the Programming Research Group at Oxford University, where Abrial worked in the early 1980s with researchers including Bernard Sufrin and Ib Holm Sørensen,[7] having arrived at Oxford in September 1979.[8] Sørensen received a DPhil degree from Oxford University in 1981 on early Z-based research.[9] He taught early courses in Z notation at Oxford[10] and established the Z User Meeting series, initially in Oxford.[11]

Ib Holm Sørensen led the Transaction Processing Project at Oxford University from its inception in 1982 (later renamed the "CICS Project",[12]), in collaboration with IBM Hursley.[13] The project formally specified parts of IBM's CICS transaction processing software using Z notation. This won a Queen's Award for Technological Achievement in 1992.[14][15] As part of the CICS project, Sørensen extended Edsger Dijkstra's Guarded Command Language by allowing the use of Z-schema notation as abstract commands.[16] These ideas were later formalized by Carroll Morgan in his refinement calculus.[16]

Z schema boxes were added by Carroll Morgan for the structuring of larger specifications.[17] Ian Hayes edited the 1987 book Specification Case Study on the use of Z (2nd edition published in 1993),[18] with contributions from Morgan, Sørensen, Sufrin, and others. A de facto standard for Z was produced as a book by Mike Spivey in 1989 (2nd edition, 1992).[19]

Abrial has said that Z is so named "Because it is the ultimate language!"[20] although the name "Zermelo" is also associated with the Z notation through its use of Zermelo–Fraenkel set theory.

Usage and notation

Z is based on the standard mathematical notation used in axiomatic set theory, lambda calculus, and first-order predicate logic.[19] All expressions in Z notation are typed, thereby avoiding some of the paradoxes of naive set theory. Z contains a standardized catalogue (called the mathematical toolkit) of commonly used mathematical functions and predicates, defined using Z itself. It is augmented with Z schema boxes, which can be combined using their own operators, based on standard logical operators, and also by including schemas within other schemas.[17] This allows Z specifications to be built up into large specifications in a convenient manner.

Z User Group

In 1985, a series of Z Users Meetings was instigated by Ib Sørensen, initially at Rewley House in Oxford.[11] In 1992, the Z User Group (ZUG) was established at one of these meetings to oversee activities concerning the Z notation, especially meetings and conferences.[11] ZUG continued to organize regular Z User Workshops/Meetings (ZUM). Later, when they began to be held outside the United Kingdom, these became known as the International Conference of Z Users. Later still, these conferences were combined to cover the B-Method as well, becoming known as the International Conference of B and Z Users (ZB).

Standards

ISO completed a Z standardization effort in 2002. This standard[21] and a technical corrigendum[22] are available from ISO free:

  • the standard is publicly available[21] freely from ISO ITTF and, separately, available for purchase[21] from the ISO site;
  • the technical corrigendum is available[22] freely from ISO.

Because Z notation uses many non-ASCII symbols, the specification includes suggestions for rendering the Z notation symbols in ASCII and in LaTeX. There are also Unicode encodings for all standard Z symbols.[23]

Award

In 1992, Oxford University Computing Laboratory and IBM were jointly awarded The Queen's Award for Technological Achievement "for the development of ... the Z notation, and its application in the IBM Customer Information Control System (CICS) product."[24]

Further reading

  • Spivey, John Michael (1992). The Z Notation: A reference manual. International Series in Computer Science (2nd ed.). Prentice Hall. Archived from the original on 8 December 2019. Retrieved 24 March 2020.
  • Davies, Jim; Woodcock, Jim (1996). Using Z: Specification, Refinement and Proof. International Series in Computer Science. Prentice Hall. ISBN 0-13-948472-8. Archived from the original on 5 April 2007. Retrieved 22 March 2006.
  • Bowen, Jonathan (1996). Formal Specification and Documentation using Z: A Case Study Approach. International Thomson Computer Press, International Thomson Publishing. ISBN 1-85032-230-9.
  • Jacky, Jonathan (1997). The Way of Z: Practical Programming with Formal Methods. Cambridge University Press. ISBN 0-521-55976-6.
  • Ince, D. C. (1993). An Introduction to Discrete Mathematics, Formal System Specification, and Z. Oxford University Press. doi:10.1093/oso/9780198538370.001.0001. ISBN 978-0198538370.

See also

References

  1. ^ Bowen, Jonathan P. (2016). "The Z Notation: Whence the Cause and Whither the Course?" (PDF). Engineering Trustworthy Software Systems. Lecture Notes in Computer Science. Vol. 9506. Springer. pp. 103–151. doi:10.1007/978-3-319-29628-9_3. ISBN 978-3-319-29627-2.
  2. ^ Bowen, Jonathan P.; Habrias, Henri (April–June 2025). "Jean-Raymond Abrial: A Scientific Biography of a Formal Methods Pioneer". IEEE Annals of the History of Computing. 48 (2). IEEE Computer Society: 71–80. doi:10.1109/MAHC.2026.3685515.
  3. ^ Abrial, Jean-Raymond (1974), "Data Semantics", in Klimbie, J. W.; Koffeman, K. L. (eds.), Proceedings of the IFIP Working Conference on Data Base Management, North-Holland, pp. 1–59
  4. ^ Hoare, Tony (2011). "Greetings to Bertrand on the Occasion of his Sixtieth Birthday" (PDF). In Nanz, Sebastian (ed.). The Future of Software Engineering. Springer. pp. 183–184. doi:10.1007/978-3-642-15187-3. ISBN 978-3-642-15187-3.
  5. ^ Abrial, Jean-Raymond; Schuman, Stephen A; Meyer, Bertrand (1980), "A Specification Language", in Macnaghten, A. M.; McKeag, R. M. (eds.), On the Construction of Programs, Cambridge University Press, ISBN 0-521-23090-X (describes early version of the language).
  6. ^ Meyer, Bertrand; Baudoin, Claude (1980), Méthodes de programmation (in French), Eyrolles
  7. ^ Bowen, Jonathan (July 2022). "Ib Holm Sørensen: Ten Years After" (PDF). FACS FACTS (2022–2). BCS-FACS: 41–49. Retrieved 1 June 2026.
  8. ^ Sufrin, Bernard (January 2026). "Memories of Jean-Raymond Abrial in Oxford, the Alps, and Paris" (PDF). FACS FACTS. 2026 (1). BCS: 66–78.
  9. ^ Sørensen, Ib Holm (1981). Topics in program specification and design: specification and design of distributed systems Archived 31 July 2022 at the Wayback Machine (DPhil). UK: Wolfson College, University of Oxford.
  10. ^ Woodcock, Jim; Davies, Jim (1996). "Acknowledgments". Using Z: Specification, Refinement, and Proof. International Series in Computer Science. Prentice Hall. ISBN 0-13-948472-8.
  11. ^ a b c Bowen, Jonathan (July 2022). "The Z User Group: Thirty Years After" (PDF). FACS FACTS. No. 2022–2. BCS-FACS. pp. 50–56. Retrieved 3 August 2022.
  12. ^ Fitzgerald, J. S. (October 2006). Perspectives on Formal Methods in the Last 25 years. Technical Report Series. Vol. CS-TR-983. UK: Newcastle University.
  13. ^ Hayes, Ian (1993). "Preface to the first edition". Specification Case Studies. International Series in Computer Science (2nd ed.). Prentice Hall. ISBN 978-0-13-832544-2.
  14. ^ King, Steve (1993). "The Use of Z in the Restructure of IBM CICS". In Hayes, Ian (ed.). Specification Case Studies. International Series in Computer Science (2nd ed.). Prentice Hall. pp. 202–213. ISBN 978-0-13-832544-2.
  15. ^ "Prof Jim Woodcock, FREng" Archived 3 October 2022 at the Wayback Machine. UK: University of York.
  16. ^ a b Hayes, Ian J.; King, Steve (2021). "11.9 Industry Influence on Research". In Jones, Cliff B.; Misra, Jayadev (eds.). Theories of Programming: The Life and Works of Tony Hoare. Association for Computing Machinery. pp. 266–267. ISBN 978-1-4503-8728-6.
  17. ^ a b Woodcock, J.C.P. (January 1989). "Structuring specifications in Z" (PDF). Software Engineering Journal. 4 (1). IEE: 51–66. doi:10.1049/sej.1989.0007.
  18. ^ Hayes, Ian, ed. (1993). Specification Case Studies Archived 20 June 2015 at the Wayback Machine. International Series in Computer Science (2nd ed.). Prentice Hall. ISBN 978-0-13-832544-2.
  19. ^ a b Spivey, J. Michael (1992). The Z Notation: A Reference Manual. International Series in Computer Science (2nd ed.). Hemel Hempstead: Prentice Hall. ISBN 978-0139785290.
  20. ^ Hoogeboom, Hendrik Jan. "Formal Methods in Software Engineering" (PDF). The Netherlands: University of Leiden. Retrieved 14 April 2017.
  21. ^ a b c "ISO/IEC 13568:2002". Information Technology — Z Formal Specification Notation — Syntax, Type System and Semantics (Zipped PDF). ISO. 1 July 2002. 196 pp.
  22. ^ a b "ISO/IEC 13568:2002/Cor.1:2007". Information Technology — Z Formal Specification Notation — Syntax, Type System and Semantics — Technical corrigendum 1 (PDF). ISO. 15 July 2007. 12 pp.
  23. ^ Korpela, Jukka K. "Unicode Explained: Internationalize Documents, Programs, and Web Sites". unicode-search.net. Archived from the original on 24 March 2020. Retrieved 24 March 2020.
  24. ^ "The Queen's Award for Technological Achievement 1992". Oxford University Computing Laboratory. Archived from the original on 2 December 2008. Retrieved 17 October 2021.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.