A class of programming languages. With a declarative language a program explicitly states what properties the desired result is required to exhibit but does not state how the desired result is to be obtained; any means of producing a result that displays the required properties is acceptable in implementations (compare imperative languages).
Since declarative languages are concerned with static rather than dynamic concepts (i.e. with what rather than how), they do not depend on any inherent notion of ordering and there is no concept of flow of control and no assignment statement. Ideally a program in a declarative language would consist solely of an unordered set of equations sufficient to characterize the desired result. However, for reasons of implementation and efficiency, the existing languages fall somewhat short of this, either in semantics or in style of use (or both). Declarative languages are not tied to the von Neumann model of computation and typically there is scope for employing new architectures with a high degree of parallelism in obtaining the desired result.
See also functional languages, logic programming languages.