From Rosetta Code
Programming paradigm/Declarative is a programming language feature.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;
- Annotations, such as are found as in C# and Java;
- 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, Logtalk;
- 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.