Algebraic specification

From Wikipedia, the free encyclopedia

Algebraic specification[1][2][3][4] is a software engineering technique for formally specifying system behavior. It was a very active subject of computer science research around 1980.[5]

Algebraic specification seeks to systematically develop more efficient programs by:

  1. formally defining types of data, and mathematical operations on those data types
  2. abstracting implementation details, such as the size of representations (in memory) and the efficiency of obtaining outcome of computations
  3. formalizing the computations and operations on data types
  4. allowing for automation by formally restricting operations to this limited set of behaviors and data types.

An algebraic specification achieves these goals by defining one or more data types, and specifying a collection of functions that operate on those data types. These functions can be divided into two classes:

  1. Constructor functions: Functions that create or initialize the data elements, or construct complex elements from simpler ones. The set of available constructor functions is implied by the specification's signature. Additionally, a specification can contain equations defining equivalences between the objects constructed by these functions. Whether the underlying representation is identical for different but equivalent constructions is implementation-dependent.
  2. Additional functions: Functions that operate on the data types, and are defined in terms of the constructor functions.

Examples

See also

Notes

Related Articles

Wikiwand AI