Declarative programming is an approach to computer programming that takes a different approach from traditional imperative programming in Fortran, C++ or Java. Whereas imperative programming gives the computer a list of instructions to execute in a particular order, declarative programming describes to the computer a set of conditions and lets the computer figure out how to satisfy them. Declarative programming includes both functional programming and logic programming.

Declarative languages describe relationships between variables in terms of functions or inference rules. The language executor (an interpreter or compiler) applies a fixed algorithm to these relations to produce a result.

Examples of declarative programming languages include Miranda, Prolog and SQL.

Declarative programming languages are extensively used in solving artificial intelligence and constraint-satisfaction problems.

See also: 4GL, constraint programming