SetOrientedProgramming

Last edit July 26, 2007
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