Programming with sets. The most well known candidate is
SetlLanguage.
This style of programming follows scientific (especially mathematical) reasoning and exposition most closely.
Problems are declaratively described as propositions about sets (
SetTheory). The constraint-solver then infers all solutions fulfilling a given set of goals.
For a specific language (log) see
http://citeseer.ist.psu.edu/dovier93embedding.html.
Related to (or a special case of)
ConstraintLogicProgramming or
LogicProgramming.
See
http://www.cs.nmsu.edu/~complog/sets/index.html
The basic operations of a
SetBasedLanguage are:
Related to
TableOrientedProgramming.
The difference to
TableOrientedProgramming is one of focus:
- SetOrientedProgramming lies the focus on expressivity (in a mathematical sense), whereas
- TableOrientedProgramming strives for high performance with limited expressivity (or at least optimization of special cases), but with sets with high numbers of regular elements (tuples).
- Of course, skeptical table fans are going to ask for an actual example of "limited expressivity". Because representional equivalency can probably be established for the items being compared (ignoring vendor/hardware-imposed limits), it may come down to a debate on style. It could perhaps be argued that tables offer a compact visual representation that raw sets don't.
AnswerMe: does
PrologLanguage fit this paradigm?
No, but some extensions do (see link above). You could relax the condition somewhat and say lists are really ordered sets only (in which case LispLanguage jumps into the boat too), but then you lose too much semantic precision, I guess.
See also:
ProgrammingParadigm,
SetsVersusTypes,
SetsAndPolymorphism,
SetlLanguage,
SetTheory,
RelationalAlgebra