Declarative Programming

Declarative programming is an approach to computer programming that involves the creation of a set of conditions that describe a solution space, but leaves the interpretation of the specific steps needed to arrive at that solution up to an unspecified interpreter. Declarative programming thus takes a different approach from the traditional imperative programming found in Fortran, C or Pascal which requires the programmer to provide a list of instructions to execute in a specified order. In other words, declarative programming provides the what, but leaves the how up to interpretation. Advantages of this approach are that
  1. it isolates the complex problem solving for the interpreter,
  2. it helps avoid the Reinventing the wheel anti-pattern (i.e. one interpreter written years ago can apply its logic to a wide variety of declarative specifications),
  3. it allows for re-use/re-interpretation in different contexts (e.g. different language bindings for IDL), and
  4. it centralizes and condenses the problem definition thereby making for more comprehensible coding practices.
Declarative programming includes both functional programming and logic programming. Declarative languages describe relationships between variables in terms of functions, inference rules, or term-rewriting rules. The language executor (an interpreter or compiler) applies a fixed algorithm to these relations to produce a result. Declarative programming was also known as Value-oriented programming, but this term has lately fallen out of use.

Applications

Declarative programming languages are extensively used in solving problems related to artificial intelligence, constraint-satisfaction problems, databases, configuration management and Inter-process communication. In addition to the domains listed above, declarative programming is becoming a vital part of many Enterprise Programming solutions. For instance, instead of couching transactions and database access within procedural code, the application developer simply declares the relationships/dependencies between higher level objects (e.g. transactions, sql, object interfaces) and the implementation is left to the framework. See Hibernate (software), Enterprise Java Beans or Spring framework for examples of how this works. Many of the dialects being created based on the XML format can be described as declarative due largely to the increasing popularity of the declarative programming paradigm.

Example languages

Representative examples of declarative programming languages include Prolog, Haskell, Miranda, SQL, TK Solver, and WSDL.
  provides an exhaustive list. 

See also

 

<< PreviousWord BrowserNext >>
joe hill
philippe wynne
orthanc
gordonstoun
skoda 150 mm model 1918
sharjah
taylor hawkins
dorothy dickson
irritable bowel syndrome
robert goddard (scientist)
ian keith malone
robert goddard (novelist)
john fowles
barry cunliffe
nelson's column
list of london underground stations
david alfaro siqueiros
franz alt
henry norris
snuffleupagus
chaos emerald
ctcpec
electronics related books
monitor warship type
link popularity
john poyntz spencer, 5th earl spencer
phoenix park murders
media manipulation
jean faircloth
mental hygiene: classroom films 1945 1970
trisha meili
wire guided missile
spede pasanen
bb
tonio selwart
anne louise germaine de stal
guilan
neiderwald, texas
legalese
sadr city
anglophone
ishaq
history of the jews in russia and the soviet union
canon d'infantrie de 37 modele 1916 trp