Specification language

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Template:Short description Template:Refimprove 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 executable code for a system.[1]

Overview

Specification languages are generally not directly executed. They are meant to describe the what, not the how.[2] It is considered an error if a requirement specification is cluttered with unnecessary implementation detail.

A common fundamental assumption of many specification approaches is that programs are modelled as algebraic or model-theoretic structures that include a collection of sets of data values together with functions over those sets. This level of abstraction coincides with the view that the correctness of the input/output behaviour of a program takes precedence over all its other properties.

In the property-oriented approach to specification (taken, e.g., by CASL), specifications of programs consist mainly of logical axioms, usually in a logical system in which equality has a prominent role, describing the properties that the functions are required to satisfy—often just by their interrelationship. This is in contrast to so-called model-oriented specification in frameworks like VDM and the Z notation, which consist of a simple realization of the required behaviour.

Specifications must be subject to a process of refinement (the filling-in of implementation detail) before they can actually be implemented. The result of such a refinement process is an executable algorithm, which is either formulated in a programming language or in an executable subset of the specification language at hand. For example, Hartmann pipelines, when properly applied, may be considered a dataflow specification which is directly executable. Another example is the actor model, which has no specific application content and must be specialized to be executable.Script error: No such module "Unsubst".

An important use of specification languages is enabling the creation of proofs of program correctness (see theorem prover).Script error: No such module "Unsubst".

Languages

Template:Main article

<templatestyles src="Div col/styles.css"/>

Script error: No such module "Check for unknown parameters".

See also

References

<templatestyles src="Reflist/styles.css" />

  1. ↑ Joseph Goguen, "One, None, A Hundred Thousand Specification Languages" Invited Paper, IFIP Congress 1986, pp. 995–1004.
  2. ↑ Script error: No such module "Citation/CS1".
  3. ↑ Script error: No such module "citation/CS1".
  4. ↑ Script error: No such module "citation/CS1".
  5. ↑ Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

External links

Script error: No such module "Navbox".