A kind of Data Flow in Programming Languages where data is communicated through Logical Variables and programs are defined by declarations of what conditions should hold for these variables. This is in contrast to other programming paradigms where programs are defined by how to make certain conditions hold.
A program is run by performing a query that asks which values the logical variables can take such that the declared conditions are true.
Examples
- Prolog
- Lambda-Prolog
- Mercury
- Curry
- CLP/R