Object-Z
Encyclopedia
Object-Z is an object-oriented extension to the Z notation
developed at the University of Queensland
, Australia
.
Object-Z extends Z by the addition of language construct
s resembling the object-oriented paradigm, most notably, classes
. Other object-oriented notions such as polymorphism and inheritance
are also supported.
While not as popular as its base language Z, Object-Z has still received significant attention in the formal methods
community, and research on aspects of the language are ongoing, including hybrid languages using Object-Z, tool support (e.g., through the Community Z Tools
project) and refinement calculi
.
Z notation
The Z notation , named after Zermelo–Fraenkel set theory, 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.-History:...
developed at the University of Queensland
University of Queensland
The University of Queensland, also known as UQ, is a public university located in state of Queensland, Australia. Founded in 1909, it is the oldest and largest university in Queensland and the fifth oldest in the nation...
, Australia
Australia
Australia , officially the Commonwealth of Australia, is a country in the Southern Hemisphere comprising the mainland of the Australian continent, the island of Tasmania, and numerous smaller islands in the Indian and Pacific Oceans. It is the world's sixth-largest country by total area...
.
Object-Z extends Z by the addition of language construct
Language construct
A language construct is a syntactically allowable part of a program that may be formed from one or more lexical tokens in accordance with the rules of a programming language....
s resembling the object-oriented paradigm, most notably, classes
Class (computer science)
In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...
. Other object-oriented notions such as polymorphism and inheritance
Inheritance (object-oriented programming)
In object-oriented programming , inheritance is a way to reuse code of existing objects, establish a subtype from an existing object, or both, depending upon programming language support...
are also supported.
While not as popular as its base language Z, Object-Z has still received significant attention in the formal methods
Formal methods
In computer science and software engineering, formal methods are a particular kind of mathematically-based techniques for the specification, development and verification of software and hardware systems...
community, and research on aspects of the language are ongoing, including hybrid languages using Object-Z, tool support (e.g., through the Community Z Tools
Community Z Tools
The project is 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. There is some support for extensions such as Object-Z and TCOZ. The tools are built...
project) and refinement calculi
Refinement Calculus
Refinement calculus is a formalized approach to stepwise refinement for program construction. The required behaviour of the final executable program is specified as an abstract and perhaps non-executable "program", which is then refined by a series of correctness-preserving transformations into an...
.