Z Specification Language
   HOME

TheInfoList



OR:

The Z notation is a formal
specification language A specification language is a formal language in computer science used during systems analysis, requirements analysis, and systems design to describe a system at a much higher level than a programming language, which is used to produce the executa ...
used for describing and modelling computing systems. It is targeted at the clear specification of
computer program A computer program is a sequence or set of instructions in a programming language for a computer to execute. Computer programs are one component of software, which also includes documentation and other intangible components. A computer program ...
s and computer-based systems in general.


History

In 1974,
Jean-Raymond Abrial Jean-Raymond Abrial (born 1938) is a French computer scientist and inventor of the Z and B formal methods. Abrial's 1974 paper ''Data Semantics'' laid the foundation for a formal approach to Data Models; although not adopted directly by practit ...
published "Data Semantics". He used a notation that would later be taught in the
University of Grenoble The Université Grenoble Alpes (UGA, French: meaning "''Grenoble Alps University''") is a public research university in Grenoble, France. Founded in 1339, it is the third largest university in France with about 60,000 students and over 3,000 resea ...
until the end of the 1980s. While at EDF (
Électricité de France Électricité de France S.A. (literally ''Electricity of France''), commonly known as EDF, is a French multinational electric utility company, largely owned by the French state. Headquartered in Paris, with €71.2 billion in revenues in 2 ...
), working with
Bertrand Meyer Bertrand Meyer (; ; born 21 November 1950) is a French academic, author, and consultant in the field of computer languages. He created the Eiffel programming language and the idea of design by contract. Education and academic career Meyer recei ...
, Abrial also worked on developing 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 Bertrand Meyer (; ; born 21 November 1950) is a French academic, author, and consultant in the field of computer languages. He created the Eiffel programming language and the idea of design by contract. Education and academic career Meyer recei ...
. It was developed further at the
Programming Research Group The Programming Research Group (PRG) was part of the Oxford University Computing Laboratory (OUCL) in Oxford, England, along with the Numerical Analysis Group, until OUCL became the Department of Computer Science, University of Oxford, Department ...
at
Oxford University Oxford () is a city in England. It is the county town and only city of Oxfordshire. In 2020, its population was estimated at 151,584. It is north-west of London, south-east of Birmingham and north-east of Bristol. The city is home to the ...
, 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 Ernst Friedrich Ferdinand Zermelo (, ; 27 July 187121 May 1953) was a German logician and mathematician, whose work has major implications for the foundations of mathematics. He is known for his role in developing Zermelo–Fraenkel axiomatic se ...
" is also associated with the Z notation through its use of
Zermelo–Fraenkel set theory In set theory, Zermelo–Fraenkel set theory, named after mathematicians Ernst Zermelo and Abraham Fraenkel, is an axiomatic system that was proposed in the early twentieth century in order to formulate a theory of sets free of paradoxes such as ...
. In 1992, the
Z User Group The Z User Group (ZUG) was established in 1992 to promote use and development of the Z notation, a formal specification language for the description of and reasoning about computer-based systems. It was formally constituted on 14 December 1992 du ...
(ZUG) was established to oversee activities concerning the Z notation, especially meetings and conferences.


Usage and notation

Z is based on the standard mathematical notation used in
axiomatic set theory Set theory is the branch of mathematical logic that studies Set (mathematics), sets, which can be informally described as collections of objects. Although objects of any kind can be collected into a set, set theory, as a branch of mathematics, ...
,
lambda calculus Lambda calculus (also written as ''λ''-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation ...
, and
first-order predicate logic First-order logic—also known as predicate logic, quantificational logic, and first-order predicate calculus—is a collection of formal systems used in mathematics, philosophy, linguistics, and computer science. First-order logic uses quantifie ...
. All expressions in Z notation are typed, thereby avoiding some of the
paradoxes of naive set theory A paradox is a logically self-contradictory statement or a statement that runs contrary to one's expectation. It is a statement that, despite apparently valid reasoning from true premises, leads to a seemingly self-contradictory or a logically u ...
. 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 ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
symbols, the specification includes suggestions for rendering the Z notation symbols in
ASCII ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
and in
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well. In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosperms ...
. There are also
Unicode Unicode, formally The Unicode Standard,The formal version reference is is an information technology Technical standard, standard for the consistent character encoding, encoding, representation, and handling of Character (computing), text expre ...
encodings for all standard Z symbols.


Standards

ISO ISO is the most common abbreviation for the International Organization for Standardization. ISO or Iso may also refer to: Business and finance * Iso (supermarket), a chain of Danish supermarkets incorporated into the SuperBest chain in 2007 * Iso ...
completed a Z standardization effort in 2002. This standard 196 pp. and a technical corrigendum 12 pp. 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.


Award

In 1992,
Oxford University Computing Laboratory The Department of Computer Science is the computer science department of the University of Oxford, England, which is part of the university's Mathematical, Physical and Life Sciences Division, University of Oxford, Mathematical, Physical and Life ...
was awarded the Queen's Award for Technological Achievement for their joint development with IBM of Z notation.


See also

*
Z User Group The Z User Group (ZUG) was established in 1992 to promote use and development of the Z notation, a formal specification language for the description of and reasoning about computer-based systems. It was formally constituted on 14 December 1992 du ...
(ZUG) *
Community Z Tools The Community Z Tools (CZT) initiative is based around a SourceForge project to build a set of tools for the Z notation, a formal method useful in software engineering. Tools include support for editing, typechecking and animating Z specifications. ...
(CZT) project * Other
formal methods In computer science, formal methods are mathematically rigorous techniques for the specification, development, and verification of software and hardware systems. The use of formal methods for software and hardware design is motivated by the expec ...
(and languages using
formal specification In computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software. They are used to describe a system, to analyze its behavior, and to aid in its design by verif ...
s): **
VDM-SL The Vienna Development Method (VDM) is one of the longest-established formal methods for the development of computer-based systems. Originating in work done at the IBM Laboratory Vienna in the 1970s, it has grown to include a group of techniques a ...
, the main alternative to Z **
B-Method The B method is a method of software development based on B, a tool-supported formal method based on an abstract machine notation, used in the development of computer software. Overview B was originally developed in the 1980s by Jean-Raymond Abr ...
, developed by Jean-Raymond Abrial (creator of Z notation) ** Z++ and Object-Z : object extensions for the Z notation **
Alloy An alloy is a mixture of chemical elements of which at least one is a metal. Unlike chemical compounds with metallic bases, an alloy will retain all the properties of a metal in the resulting material, such as electrical conductivity, ductility, ...
, a specification language inspired by Z notation and implementing the principles of
Object Constraint Language The Object Constraint Language (OCL) is a declarative language describing rules applying to Unified Modeling Language (UML) models developed at IBM and is now part of the UML standard. Initially, OCL was merely a formal specification language ex ...
(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 is a
model-based testing Model-based testing is an application of model-based design for designing and optionally also executing artifacts to perform software testing or system testing. Models can be used to represent the desired behavior of a system under test (SUT), or ...
tool for the Z notation.


References


Further reading

* * * * {{DEFAULTSORT:Z Notation Computer-related introductions in 1977 Specification languages Formal specification languages Oxford University Computing Laboratory