Declarative programming: Difference between revisions

From Rosetta Code
Content added Content deleted
m (Syntax, links)
m (English, shortened wp links)
Line 4: Line 4:


* Specifications and contracts, in the [[programming language]]s which support separation of specifications and implementations;
* Specifications and contracts, in the [[programming language]]s which support separation of specifications and implementations;
* Types declarations and types inference in typed languages;
* Type declarations and type inference in typed languages;
* Objects declarations in [[object-oriented programming]] languages, as well as in typed languages in general;
* Object declarations in [[object-oriented programming]] languages, as well as in typed languages in general;
* Many domain-specific languages.
* Many domain-specific languages.


Among the latter, according to the domain:
Among the latter, according to the domain:


* component interface specifications: [http://en.wikipedia.org/wiki/CORBA IDL];
* component interface specifications: [[wp:CORBA|IDL]];
* correctness proving: [http://en.wikipedia.org/wiki/SPARK_%28programming_language%29 SPARK];
* correctness proving: [[wp:SPARK_%28programming_language%29|SPARK]];
* database modeling: [http://en.wikipedia.org/wiki/IDEF IDEF];
* database modeling: [[wp:IDEF|IDEF]];
* formal grammar parser generation: [http://en.wikipedia.org/wiki/Yacc yacc], [http://en.wikipedia.org/wiki/GNU_bison bison];
* formal grammar parser generation: [[wp:Yacc|yacc]], [[wp:GNU_bison|bison]];
* logical inference: [[Prolog]];
* logical inference: [[Prolog]];
* pattern matching: [http://en.wikipedia.org/wiki/Regex regex], [http://en.wikipedia.org/wiki/SNOBOL SNOBOL];
* pattern matching: [[wp:Regex|regex]], [[wp:SNOBOL|SNOBOL]];
* process automation, modeling, simulation and control: [http://en.wikipedia.org/wiki/LabView LabView], [http://en.wikipedia.org/wiki/Modelica Modelica], [http://en.wikipedia.org/wiki/Simulink MatLab/Simulink], [http://en.wikipedia.org/wiki/Fuzzy_Control_Language Fuzzy Control Language];
* process automation, modeling, simulation and control: [[wp:LabView|LabView]], [[wp:Modelica|Modelica]], [[wp:Simulink|MatLab/Simulink]], [[wp:Fuzzy_Control_Language|Fuzzy Control Language]];
* software modeling: [http://en.wikipedia.org/wiki/Unified_Modeling_Language UML];
* software modeling: [[wp:Unified_Modeling_Language|UML]];
* symbolic analysis and computations: [[Mathematica]].
* symbolic analysis and computations: [[Mathematica]].

Revision as of 20:59, 21 July 2008

Declarative programming is a programming model. See main article imperative programming.

The major areas of declarative programming application are:

  • Specifications and contracts, in the programming languages which support separation of specifications and implementations;
  • Type declarations and type inference in typed languages;
  • Object declarations in object-oriented programming languages, as well as in typed languages in general;
  • Many domain-specific languages.

Among the latter, according to the domain: