Declarative programming
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;
- Types declarations and types inference in typed languages;
- Objects 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:
- component interface specifications: IDL;
- correctness proving: SPARK;
- database modeling: IDEF;
- formal grammar parser generation: yacc, bison;
- logical inference: Prolog;
- pattern matching: regex, SNOBOL;
- process automation, modeling, simulation and control: LabView, Modelica, MatLab/Simulink, Fuzzy Control Language;
- software modeling: UML;
- symbolic analysis and computations: Mathematica.