Declarative programming express the logic of a computation without describing its control flow.
Many languages that apply this style attempt to minimize or eliminate side effects by describing what the program must ccomplish in terms of the problem domain, rather than describe how to accomplish it as a sequence of the programming language primitives. This is in contrast with Imperative Programming, which implements algorithms in explicit steps.
Common declarative languages include those of database query languages (SQL), regular expressions, logic/functional programming and configuration management systems.
Declarative programming is often defined as any stlye of programming that is not imperative.
- High-level program that describes what a computation should perform.
- Any programming language that lacks side effects, or more specifically is Referentially Transparent.
- A language with a clear correspondence to mathematical logic.