A declarative programming language is one
in which the relationships between the data are stated (or declared
in a (usually logic-based) language, and then some automatic mechanism, e.g.
a theorem-prover, is used to answer queries about the
data. Prolog is a declarative programming language. Haskell, Miranda,
Lisp, and Scheme
are functional programming languages, in which all constructs are
expressed using functions, function arguments, and function results,
and C, C++, Java, Perl, Pascal, Modula-2, and Fortran are examples of (high-level)
procedural programming languages, in which the program code expresses
procedures to follow in manipulating the data.