A general term for a relational language or a functional language , as opposed to an imperative language . Imperative (or procedural) languages specify explicit sequences of steps to follow to produce a result, while declarative languages describe relationships between variables in terms of functions or inference rule s and the language executor ( interpreter or compiler ) applies some fixed algorithm to these relations to produce a result. The most common examples of declarative languages are logic programming languages such as Prolog and functional language s like Haskell .
See also production system .
(1994-11-23)