Specification Language

A specification language is a formal language used in computer science. Unlike most programming languages, which are directly executable formal languages used to implement a system, specification languages are used during systems analysis, requirements analysis and systems design.

Specification languages are generally not directly executed. They describe the system at a much higher level than a programming language. Indeed, it is considered as an error if a requirement specification is cluttered with unnecessary implementation detail, because the specification is meant to describe the what, not the how.

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 is commensurate 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 Z, 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.

An important use of specification languages is enabling the creation of proofs of program correctness (see theorem prover).

Read more about Specification Language:  Languages

Other articles related to "specification language, specification languages, specifications, specification":

Common Algebraic Specification Language
... The Common Algebraic Specification Language (CASL) is a general-purpose specification language based on first-order logic with induction ... designed by CoFI, the Common Framework Initiative, with the aim to subsume many existing specification languages ... CASL comprises four levels basic specifications, for the specification of single software modules, structured specifications, for the modular specification of modules, architectural specifications, for the ...
Specification Language - Languages
... CASL VDM Z notation LePUS3 (a visual, object-oriented design description language) Perfect. ...

Famous quotes containing the word language:

    Theoretically, I grant you, there is no possibility of error in necessary reasoning. But to speak thus “theoretically,” is to use language in a Pickwickian sense. In practice, and in fact, mathematics is not exempt from that liability to error that affects everything that man does.
    Charles Sanders Peirce (1839–1914)