Z notation: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>Lachsdachs
m Usage and notation: remove silly quip
 
imported>Jpbowen
m Refs, tidying
Line 6: Line 6:


==History==
==History==
In 1974, [[Jean-Raymond Abrial]] published "Data Semantics".<ref>{{Citation | author-link = Jean-Raymond Abrial | first = Jean-Raymond | last = Abrial | contribution = Data Semantics | editor1-last = Klimbie | editor1-first = J. W. | editor2-last = Koffeman | editor2-first = K. L. | title = Proceedings of the [[IFIP]] Working Conference on Data Base Management | publisher = [[North-Holland Publishing Company|North-Holland]] | pages = 1–59 | year=1974 }}</ref> 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.<ref>{{cite book| url=https://link.springer.com/content/pdf/bbm%3A978-3-642-15187-3%2F1.pdf | title=Greetings to Bertrand on the Occasion of his Sixtieth Birthday | first=Tony | last=Hoare | authorlink=Tony Hoare | date=2010 | work=The Future of Software Engineering | page=183 | isbn=978-3-642-15187-3 | publisher=[[Springer Science+Business Media|Springer]] }}</ref> The Z notation is used in the 1980 book ''Méthodes de programmation''.<ref>{{Citation | author1-link = Bertrand Meyer | first1 = Bertrand | last1 = Meyer | first2 = Claude | last2 = Baudoin | title = Méthodes de programmation | publisher = Eyrolles | year = 1980 | language = fr}}</ref>
In 1974, [[Jean-Raymond Abrial]] published "Data Semantics".<ref>{{Citation | author-link = Jean-Raymond Abrial | first = Jean-Raymond | last = Abrial | contribution = Data Semantics | editor1-last = Klimbie | editor1-first = J. W. | editor2-last = Koffeman | editor2-first = K. L. | title = Proceedings of the [[IFIP]] Working Conference on Data Base Management | publisher = [[North-Holland Publishing Company|North-Holland]] | pages = 1–59 | year=1974 }}</ref> 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.<ref>{{cite book| chapter-url=https://link.springer.com/content/pdf/bbm%3A978-3-642-15187-3%2F1.pdf | chapter=Greetings to Bertrand on the Occasion of his Sixtieth Birthday | first=Tony | last=Hoare | authorlink=Tony Hoare | editor-first=Sebastian | editor-last=Nanz | date=2011 | title=The Future of Software Engineering | pages=183–184 | isbn=978-3-642-15187-3 | publisher=[[Springer Science+Business Media|Springer]] | doi=10.1007/978-3-642-15187-3 }}</ref> The Z notation is used in the 1980 book ''Méthodes de programmation''.<ref>{{Citation | author1-link = Bertrand Meyer | first1 = Bertrand | last1 = Meyer | first2 = Claude | last2 = Baudoin | title = Méthodes de programmation | publisher = Eyrolles | year = 1980 | language = fr}}</ref>


Z was originally proposed by Abrial in 1977 with the help of Steve Schuman and [[Bertrand Meyer]].<ref>{{Citation | first1 = Jean-Raymond | last1 = Abrial | first2 = Stephen A | last2 = Schuman | first3 = Bertrand | last3 = Meyer | contribution = A Specification Language | title = On the Construction of Programs | publisher = [[Cambridge University Press]] | editor1-first = A. M. | editor1-last = Macnaghten | editor2-first = R. M. | editor2-last = McKeag | year = 1980 | isbn = 0-521-23090-X}} (describes early version of the language).</ref> It was developed further at the [[Programming Research Group]] at [[Oxford University]], where Abrial worked in the early 1980s, having arrived at Oxford in September 1979.
Z was originally proposed by Abrial in 1977 with the help of Steve Schuman and [[Bertrand Meyer]].<ref>{{Citation | first1 = Jean-Raymond | last1 = Abrial | first2 = Stephen A | last2 = Schuman | first3 = Bertrand | last3 = Meyer | contribution = A Specification Language | title = On the Construction of Programs | publisher = [[Cambridge University Press]] | editor1-first = A. M. | editor1-last = Macnaghten | editor2-first = R. M. | editor2-last = McKeag | year = 1980 | isbn = 0-521-23090-X}} (describes early version of the language).</ref> It was developed further at the [[Programming Research Group]] at [[Oxford University]], where Abrial worked in the early 1980s, having arrived at Oxford in September 1979.
Line 28: Line 28:
==Award==
==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."<ref>{{cite web |url=http://web2.comlab.ox.ac.uk/oucl/about/qata92.html |title=The Queen's Award for Technological Achievement 1992 |archive-url=https://web.archive.org/web/20081202044350/http://web2.comlab.ox.ac.uk/oucl/about/qata92.html |archive-date=2 December 2008 |website= [[Oxford University Computing Laboratory]] |access-date=17 October 2021}}</ref>
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."<ref>{{cite web |url=http://web2.comlab.ox.ac.uk/oucl/about/qata92.html |title=The Queen's Award for Technological Achievement 1992 |archive-url=https://web.archive.org/web/20081202044350/http://web2.comlab.ox.ac.uk/oucl/about/qata92.html |archive-date=2 December 2008 |website= [[Oxford University Computing Laboratory]] |access-date=17 October 2021}}</ref>
==Further reading==
*{{cite book
| author-link = John Michael Spivey| first = John Michael | last = Spivey
| title = The Z Notation: A reference manual | edition = 2nd | year = 1992
| publisher = [[Prentice Hall]] | series = International Series in Computer Science | url=https://spivey.oriel.ox.ac.uk/corner/Z_Reference_Manual }}
*{{cite book|title=Using Z: Specification, Refinement and Proof|last1=Davies|first1=Jim|author-link1=Jim Davies (computer scientist)|
last2=Woodcock|first2=Jim|author-link2=Jim Woodcock| publisher=Prentice Hall|year=1996|isbn=0-13-948472-8|series=International Series in Computer Science | url=http://www.usingz.com/ }}
*{{cite book|title=Formal Specification and Documentation using Z: A Case Study Approach|last=Bowen|first=Jonathan| publisher=International Thomson Computer Press, [[International Thomson Publishing]] |year=1996|isbn=1-85032-230-9|author-link=Jonathan Bowen | url=https://www.researchgate.net/publication/2480325 }}
*{{cite book|title=The Way of Z: Practical Programming with Formal Methods|last=Jacky|first=Jonathan| publisher=[[Cambridge University Press]] |year=1997|isbn=0-521-55976-6| url=https://staff.washington.edu/jon/z-book/ }}
*{{cite book|title=An Introduction to Discrete Mathematics, Formal System Specification, and Z|last=Ince|first=D. C.| publisher=[[ Oxford University Press]] |year=1993|doi=10.1093/oso/9780198538370.001.0001 |isbn=978-0198538370 }}


==See also==
==See also==
Line 36: Line 47:
** [[B-Method]], developed by Jean-Raymond Abrial (creator of Z notation)
** [[B-Method]], developed by Jean-Raymond Abrial (creator of Z notation)
** [[Z++]] and [[Object-Z]], object extensions for the Z notation
** [[Z++]] and [[Object-Z]], object extensions for the Z notation
**[[Alloy (specification language)|Alloy]], a specification language inspired by Z notation and implementing the principles of [[Object Constraint Language]] (OCL).
**[[Alloy (specification language)|Alloy]], a specification language inspired by Z notation and implementing the principles of [[Object Constraint Language]] (OCL)
** Verus, a proprietary tool built by Compion, Champaign, Illinois (later purchased by Motorola), for use in the multi-level secure UNIX project pioneered by its Addamax division.
* [[Fastest]], a [[model-based testing]] tool for the Z notation
* [[Fastest]], a [[model-based testing]] tool for the Z notation.
* [[Unified Modeling Language]], a software system design modeling tool by [[Object Management Group]]
* [[Unified Modeling Language]], a software system design modeling tool by [[Object Management Group]]


==References==
==References==
{{Reflist}}
{{Reflist}}
==Further reading==
*{{cite book
| author-link = John Michael Spivey| first = John Michael | last = Spivey
| title = The Z Notation: A reference manual | edition = 2nd | year = 1992
| publisher = [[Prentice Hall]] | series = International Series in Computer Science | url=https://spivey.oriel.ox.ac.uk/corner/Z_Reference_Manual }}
*{{cite book|title=Using Z: Specification, Refinement and Proof|last1=Davies|first1=Jim|last2=Woodcock|first2=Jim|publisher=Prentice Hall|year=1996|isbn=0-13-948472-8|series=International Series in Computer Science|author1-link=Jim Davies (computer scientist)|author2-link=Jim Woodcock| url=http://www.usingz.com/ }}
*{{cite book|title=Formal Specification and Documentation using Z: A Case Study Approach|last=Bowen|first=Jonathan| publisher=International Thomson Computer Press, [[International Thomson Publishing]] |year=1996|isbn=1-85032-230-9|author-link=Jonathan Bowen | url=https://www.researchgate.net/publication/2480325 }}
*{{cite book|title=The Way of Z: Practical Programming with Formal Methods|last=Jacky|first=Jonathan| publisher=[[Cambridge University Press]] |year=1997|isbn=0-521-55976-6| url=https://staff.washington.edu/jon/z-book/ }}
*{{cite book|title=An Introduction to Discrete Mathematics, Formal System Specification, and Z|last=Ince|first=D C| publisher=[[ Oxford University Press]] |year=1993|doi=10.1093/oso/9780198538370.001.0001 |isbn=9780198538370| url=https://doi.org/10.1093/oso/9780198538370.001.0001 }}


{{ISO standards}}
{{ISO standards}}

Revision as of 12:07, 2 June 2025

Template:Short description Template:Use dmy dates

File:Agendacumple en Z.svg
An example of a formal specification (in Spanish) using the Z notation, with named schema boxes, including declarations and predicates

The Z notation Template:IPAc-en 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 published "Data Semantics".[2] 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.[3] The Z notation is used in the 1980 book Méthodes de programmation.[4]

Z was originally proposed by Abrial in 1977 with the help of Steve Schuman and Bertrand Meyer.[5] It was developed further at the Programming Research Group at Oxford University, where Abrial worked in the early 1980s, having arrived at Oxford in September 1979.

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

In 1992, the Z User Group (ZUG) was established to oversee activities concerning the Z notation, especially meetings and conferences.[7]

Usage and notation

Z is based on the standard mathematical notation used in axiomatic set theory, lambda calculus, and first-order predicate logic.[8] 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. This allows Z specifications to be built up into large specifications in a convenient manner.

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.[9]

Standards

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

  • the standard is publicly available[10] from the ISO ITTF site free of charge and, separately, available for purchase[10] from the ISO site;
  • the technical corrigendum is available[11] from the ISO site free of charge.

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."[12]

Further reading

  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".

See also

References

Template:Reflist

Template:ISO standards Template:List of IEC standards Template:Authority control

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1". (describes early version of the language).
  6. Script error: No such module "citation/CS1".
  7. Script error: No such module "citation/CS1".
  8. Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. a b c Script error: No such module "citation/CS1". 196 pp.
  11. a b Script error: No such module "citation/CS1". 12 pp.
  12. Script error: No such module "citation/CS1".