====== Declarative Programming ====== [[dido:public:ra:xapend:xapend.a_glossary:start| Return to Glossary ]] **Declarative Programming** is a programming paradigm—a style of building the structure and elements of computer programs—that expresses 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 accomplish in terms of the problem domain, rather than describe how to accomplish it as a sequence of the programming language primitives (the how being left up to the language's implementation). This is in contrast with [[dido:public:ra:xapend:xapend.a_glossary:i:imperative]], which implements algorithms in explicit steps. Declarative programming often considers programs as theories of a formal logic, and computations as deductions in that logic space. Declarative programming may greatly simplify writing parallel programs. Common declarative languages include those of database query languages (e.g., [[dido:public:ra:xapend:xapend.a_glossary:s:sql]], [[dido:public:ra:xapend:xapend.a_glossary:x:xquery]]), regular expressions, logic programming, functional programming, and configuration management systems. Source: [[https://en.wikipedia.org/wiki/Declarative_programming ]] /**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /* To add a discussion page to this page, comment out the line that says ~~DISCUSSION:off~~ */ ~~DISCUSSION:on|Outstanding Issues~~ ~~DISCUSSION:off~~