Specification language
This article needs additional citations for verification. (August 2016) |
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. 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
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,
An important use of specification languages is enabling the creation of
Languages
See also
- Formal specification
- Language-independent specification
- Specification and Description Language
- Unified Modeling Language
References
- ^ Joseph Goguen
"One, None, A Hundred Thousand Specification Languages" Invited Paper, IFIPCongress 1986 pp 995-1004
- ISBN 978-3-540-65765-1.
- ISBN 0-89391-494-0. Retrieved 6 July 2014.
External links
- Media related to Specification languages at Wikimedia Commons