Declarative Programming Language: Difference between revisions

From GM-RKB
Jump to navigation Jump to search
m (Text replace - ".[" to ". [")
 
No edit summary
Line 1: Line 1:
A [[Declarative Programming Language]] is a [[programming language]] that can express statements independently of the order of evaluation.
A [[Declarative Programming Language]] is a [[programming language]] that can express [[software statement]]s independently of the [[source code]] order of evaluation.
* <B><U>Context</U>:</B>
* <B><U>Context</U>:</B>
** It can be a [[Logic Programming Language]].
** It can range from being a [[Logic-based Programming Language]] to being a [[Function-based Programming Language]].
** It can be a [[Functional Programming Language]].
* <B><U>Example(s)</U>:</B>  
* <B><U>Example(s)</U>:</B>  
** [[Prolog Programming Language]].
** a [[Logic-based Programming Language]], such as [[Prolog Programming Language|Prolog]], [[Datalog Programming Language|Datalog]], and an [[Answer Set Programming Language]].
** [[Datalog Programming Language]].
** a [[Function-based Programming Language]], such as [[Haskell]].
** [[Answer Set Programming Language]].
* <B><U>Counter-Example(s)</U>:</B>  
* <B><U>Counter-Example(s)</U>:</B>  
** an [[Imperative Programming Language]].
** an [[Imperative Programming Language]].
Line 14: Line 12:
==References ==
==References ==


===2009===
===2013===
* (Wikipedia, 2009) &rArr; http://en.wikipedia.org/wiki/Declarative_programming
* (Wikipedia, 2013) &rArr; http://en.wikipedia.org/wiki/Declarative_programming
** In computer science, declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow. [1] Many languages applying this style attempt to minimize or eliminate side effects by describing what the program should accomplish, rather than describing how to go about accomplishing it. [2] This is in contrast from imperative programming, which requires a detailed description of the algorithm to be run.
** In [[computer science]], '''declarative programming''' is a [[programming paradigm]] that expresses the logic of a [[computation]] without describing its [[control flow]].<ref>{{citation|last=Lloyd|first=J.W.|title=Practical Advantages of Declarative Programming}}</ref> Many languages applying this style attempt to minimize or eliminate [[side effect (computer science)|side effects]] by describing ''what'' the program should accomplish, rather than describing ''how'' to go about accomplishing it<ref>[http://foldoc.org/index.cgi?query=declarative+language Declarative language] in The Free On-line Dictionary of Computing, Editor Denis Howe.</ref> (the ''how'' is left up to the language's implementation). This is in contrast with [[imperative programming]], in which [[algorithm]]s are implemented in terms of explicit steps.   <P>        Declarative programming often considers [[program (machine)|programs]] as theories of a [[formal logic]], and computations as deductions in that logic space. Declarative programming has become of particular interest recently, as it may greatly simplify writing [[parallel computing|parallel programs]].<ref>http://www.cse.unsw.edu.au/~pls/damp09/</ref>  <P>        Common declarative languages include those of [[database query language]]s (e.g., SQL, XQuery), [[regular expression]]s, [[logic programming]], [[functional programming]], and [[configuration management]] systems.
** Declarative programming often considers programs as theories of a formal logic, and computations as deductions in that logic space. Declarative programming has become of particular interest recently, as it may greatly simplify writing parallel programs [1].
 
** Common declarative languages include those of regular expressions, logic programming and functional programming.
<references/>
* (Wikipedia, 2009) &rArr; http://en.wikipedia.org/wiki/Logic_programming
* http://en.wikipedia.org/wiki/Declarative_programming#Definition
** Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy's [1958] advice-taker proposal, logic is used as a purely declarative representation language, and a theorem-prover or model-generator is used as the problem-solver. The problem-solving task is split between the programmer, who is responsible only for ensuring the truth of programs expressed in logical form, and the theorem-prover or model-generator, which is responsible for solving problems efficiently.
** Declarative programming is often defined as any style of programming that is not [[imperative programming|imperative]]. A number of other common definitions exist that attempt to give the term a definition other than simply contrasting it with imperative programming. For example:
** However, logic programming, in the narrower sense in which it is more commonly understood, is the use of logic as both a declarative and procedural representation language.
*** A program that describes ''what'' computation should be performed and not ''how'' to compute it
*** Any programming language that lacks [[side effect (computer science)|side effects]] (or more specifically, is [[referential transparency (computer science)|referentially transparent]])
*** A language with a clear correspondence to [[mathematical logic]].<ref>http://www.cse.unsw.edu.au/~chak/papers/diss.ps.gz</ref><!-- this citation is just for this bullet point -->
** These definitions overlap substantially.


__NOTOC__
__NOTOC__
[[Category:Concept]]
[[Category:Concept]]

Revision as of 03:29, 6 June 2013

A Declarative Programming Language is a programming language that can express software statements independently of the source code order of evaluation.



References

2013

  1. Template:Citation
  2. Declarative language in The Free On-line Dictionary of Computing, Editor Denis Howe.
  3. http://www.cse.unsw.edu.au/~pls/damp09/