- Specification language
A specification language is a
formal language used incomputer science .Unlike mostprogramming language s, which are directly executable formal languages used to implement a system, specification languages are used duringsystems analysis ,requirements analysis andsystems 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
axiom s, usually in alogical 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" specifications 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 pipeline s, whenproperly applied, may be considered adataflow specification which "is" directly executable. Another example is theActor 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 ("seetheorem prover ").Languages
*
Unified Modelling Language
*CASL
*Vienna Development Method
*Z notation ee also
*
Formal specification
*Language-independent specification
Wikimedia Foundation. 2010.