⚠️ Warning: This is a draft ⚠️

This means it might contain formatting issues, incorrect code, conceptual problems, or other severe issues.

If you want to help to improve and eventually enable this page, please fork RosettaGit's repository and open a merge request on GitHub.

{{feature|Programming paradigm}}'''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 language]]s 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;
  • Annotations, such as are found as in [[C sharp|C#]] and [[Java]];
  • Many domain-specific languages.

Among the latter, according to the domain:

  • component interface specifications: [[wp:CORBA|IDL]];
  • correctness proving: [[wp:SPARK_%28programming_language%29|SPARK]];
  • database modeling: [[wp:IDEF|IDEF]];
  • formal grammar parser generation: [[wp:Yacc|yacc]], [[wp:GNU_bison|bison]];
  • logical inference: [[Prolog]], [[wp:Logtalk|Logtalk]];
  • pattern matching: [[wp:Regex|regex]], [[wp:SNOBOL|SNOBOL]];
  • 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: [[wp:Unified_Modeling_Language|UML]];
  • symbolic analysis and computations: [[Mathematica]].