Formal specification

Charles Babbage, sometimes referred to as the "father of computing".

In computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software.

- Formal specification

84 related topics


Z notation

An example of a formal specification (in Spanish) using the Z notation.

The Z notation is a formal specification language used for describing and modelling computing systems.

Refinement (computing)

Generic term of computer science that encompasses various approaches for producing correct computer programs and simplifying existing programs to enable their formal verification.

A hex dump of an executable real mode loader

In formal methods, program refinement is the verifiable transformation of an abstract (high-level) formal specification into a concrete (low-level) executable program.

Formal verification

P. Oxy. 29, one of the oldest surviving fragments of Euclid's Elements, a textbook used for millennia to teach proof-writing techniques. The diagram accompanies Book II, Proposition 5.

In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics.

Correctness (computer science)

An artistic representation of a Turing machine. Turing machines are used to model general computing devices.

In theoretical computer science, an algorithm is correct with respect to a specification if it behaves as specified.

Communicating sequential processes

Formal language for describing patterns of interaction in concurrent systems.

Charles Babbage, sometimes referred to as the "father of computing".

CSP has been practically applied in industry as a tool for specifying and verifying the concurrent aspects of a variety of different systems, such as the T9000 Transputer, as well as a secure ecommerce system.

Specification (technical standard)

A specification often refers to a set of documented requirements to be satisfied by a material, design, product, or service.

Systems engineering techniques are used in complex projects: spacecraft design, computer chip design, robotics, software integration, and bridge building. Systems engineering uses a host of tools that include modeling and simulation, requirements analysis and scheduling to manage complexity.

It can be informal, in which case it can be considered as a user manual from a developer point of view, or formal, in which case it has a definite meaning defined in mathematical or programmatic terms.

Computer science

Study of computation, automation, and information.

Charles Babbage, sometimes referred to as the "father of computing".
Ada Lovelace published the first algorithm intended for processing on a computer.

Formal methods are a particular kind of mathematically based technique for the specification, development and verification of software and hardware systems.


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.

The TEAF Matrix of Views and Perspectives.

It has robust, commercially available tool support for specification, design, proof and code generation.


TLA+ IDE in typical use showing spec explorer on the left, editor in the middle, and parse errors on the right.
Amir Pnueli applied temporal logic to computer science, for which he received the 1996 Turing Award.
TLA+ was developed by computer scientist and 2013 Turing award recipient Leslie Lamport.
States and transitions discovered by TLC for the one-bit clock.

TLA+ is a formal specification language developed by Leslie Lamport.

Jakarta EE

Set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services.

(a), (b): a distributed system. (c): a parallel system.

Jakarta EE is defined by its specification.