When applied to
programming languages, this label is used for languages or constructs that state the form of a result.
Logical and
functional (
applicative) programming languages are declarative.
In imperative languages, on the other hand, statements describe actions, and programs describe combinations of actions to construct the desired result. In declarative languages, the exact construction is left to the implementation.