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 (just like the
APL language, long before it) 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]
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.
^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
^Meyer, Bertrand; Baudoin, Claude (1980), Méthodes de programmation (in French), Eyrolles
^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,
ISBN0-521-23090-X (describes early version of the language).