Declarative Programming Language: Difference between revisions
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 | 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 | ** It can range from being a [[Logic-based Programming Language]] to being a [[Function-based 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]]. | ||
** a [[Function-based Programming Language]], such as [[Haskell]]. | |||
** [[ | |||
* <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 == | ||
=== | ===2013=== | ||
* (Wikipedia, | * (Wikipedia, 2013) ⇒ 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. | ** 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. | ||
<references/> | |||
* | * http://en.wikipedia.org/wiki/Declarative_programming#Definition | ||
** | ** 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: | ||
** | *** 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.
- Context:
- It can range from being a Logic-based Programming Language to being a Function-based Programming Language.
- Example(s):
- a Logic-based Programming Language, such as Prolog, Datalog, and an Answer Set Programming Language.
- a Function-based Programming Language, such as Haskell.
- Counter-Example(s):
- See: Data Manipulation Language, SQL Language.
References
2013
- (Wikipedia, 2013) ⇒ 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] (the how is left up to the language's implementation). This is in contrast with imperative programming, in which algorithms are implemented in terms of explicit steps.
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.[3]
Common declarative languages include those of database query languages (e.g., SQL, XQuery), regular expressions, logic programming, functional programming, and configuration management systems.
- 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] (the how is left up to the language's implementation). This is in contrast with imperative programming, in which algorithms are implemented in terms of explicit steps.
- ↑ Template:Citation
- ↑ Declarative language in The Free On-line Dictionary of Computing, Editor Denis Howe.
- ↑ http://www.cse.unsw.edu.au/~pls/damp09/
- http://en.wikipedia.org/wiki/Declarative_programming#Definition
- Declarative programming is often defined as any style of programming that is not 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:
- A program that describes what computation should be performed and not how to compute it
- Any programming language that lacks side effects (or more specifically, is referentially transparent)
- A language with a clear correspondence to mathematical logic.[1]
- These definitions overlap substantially.
- Declarative programming is often defined as any style of programming that is not 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: