declarative language

Any relational language or functional language. These kinds of programming language describe relationships between variables in terms of functions or inference rules, and the language executor (interpreter or compiler) applies some fixed algorithm to these relations to produce a result.

Declarative languages contrast with imperative languages which specify explicit manipulation of the computer's internal state; or procedural languages which specify an explicit sequence of steps to follow.

The most common examples of declarative languages are logic programming languages such as Prolog and functional languages like Haskell.

See also production system.