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 stateor 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.(2004-05-17)