Z notation is a formal specification language used for describing and modelling computing systems. It is targeted at the clear specification of computer programs and computer-based systems in general.
Jean-Raymond Abrial published "Data Semantics". 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), Abrial wrote internal notes on Z. The Z notation is used in the 1980 book Méthodes de programmation.
Z was originally proposed by Abrial in 1977 with the help of Steve Schuman and
Bertrand Meyer. 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!"
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. 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.
Although 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.
ISO completed a Z standardization effort in 2002. This standard and a technical corrigendum  are available from ISO free:
the standard is publicly available
from the ISO ITTF site free of charge and, separately, available for purchase  from the ISO site;  the technical corrigendum is available from the ISO site free of charge. 
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, ISBN 0-521-23090-X (describes early version of the language).
Hoogeboom, Hendrik Jan. "Formal Methods in Software Engineering" (PDF). The Netherland: University of Leiden . Retrieved . 14 April 2017
^ a b c
"ISO/IEC 13568:2002". Information Technology — Z Formal Specification Notation — Syntax, Type System and Semantics (. ISO. 1 July 2002. Zipped PDF) 196 pp.
^ 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.
Spivey, John Michael (1992). The Z Notation: A reference manual. International Series in Computer Science (2nd ed.). Prentice Hall.
Davies, Jim; Woodcock, Jim (1996). Using Z: Specification, Refinement and Proof. International Series in Computer Science. Prentice Hall. ISBN . 0-13-948472-8
Bowen, Jonathan (1996). Formal Specification and Documentation using Z: A Case Study Approach. International Thomson Computer Press. 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