BNR Prolog
   HOME

TheInfoList



OR:

BNR Prolog, also known as CLP(BNR), is a declarative
constraint logic programming Constraint logic programming is a form of constraint programming, in which logic programming is extended to include concepts from constraint satisfaction. A constraint logic program is a logic program that contains constraints in the body of claus ...
language based on relational
interval arithmetic Interval arithmetic (also known as interval mathematics; interval analysis or interval computation) is a mathematical technique used to mitigate rounding and measurement errors in mathematical computation by computing function bounds. Numeri ...
developed at
Bell-Northern Research Bell-Northern Research (BNR) was a telecommunications research and development company established In 1971 when Bell Canada and Northern Electric combined their R&D organizations. It was jointly owned by Bell Canada and Northern Telecom. BNR ...
in the 1980s and 1990s. Embedding relational interval arithmetic in a logic programming language differs from other constraint logic programming (CLP) systems like
CLP(R) CLP(R) is a declarative programming language. It stands for constraint logic programming (real) where real refers to the real numbers. It can be considered and is generally implemented as a superset or add-on package for a Prolog implementation. E ...
or Prolog-III in that it does not perform any symbolic processing. BNR Prolog was the first such implementation of interval arithmetic in a logic programming language. Since the
constraint propagation In constraint satisfaction, local consistency conditions are properties of constraint satisfaction problems related to the consistency of subsets of variables or constraints. They can be used to reduce the search space and make the problem easier t ...
is performed on real interval values, it is possible to express and partially solve
non-linear equation In mathematics and science, a nonlinear system (or a non-linear system) is a system in which the change of the output is not proportional to the change of the input. Nonlinear problems are of interest to engineers, biologists, physicists, mathem ...
s.


Example rule

The
simultaneous equations In mathematics, a set of simultaneous equations, also known as a system of equations or an equation system, is a finite set of equations for which common solutions are sought. An equation system is usually classified in the same manner as single e ...
: : \tan x = y : x^2 + y^2 = 5 are expressed in CLP(BNR) as: ?- . and a typical implementation's response would be: X = _58::real(1.0966681287054703,1.0966681287054718),
Y = _106::real(1.9486710896099515,1.9486710896099542).
Yes


See also

*
Comparison of Prolog implementations The following Comparison of Prolog implementations provides a reference for the relative feature sets and performance of different implementations of the Prolog computer programming language. A comprehensive discussion of the most significant Pro ...
*
Prolog syntax and semantics The syntax and semantics of Prolog, a programming language, are the sets of rules that define how a Prolog program is written and how it is interpreted, respectively. The rules are laid out in ISO standard ISO/IEC 13211''ISO/IEC 13211: Informat ...


References


General references

* J. G. Cleary, "Logical Arithmetic", Future Computing Systems, Vol 2, No 2, pp. 125–149, 1987. * W. Older and A. Vellino,
Extending Prolog with Constraint Arithmetic on Real Intervals
, in Proc. of the Canadian Conf. on Electrical and Computer Engineering, 1990. * Older, W., and Benhamou, F., Programming in CLP(BNR), in: 1st Workshop on Principles and Practice of Constraint Programming, 1993.


External links


GitHub site for a 2018 re-implementation in SWI-Prolog
Declarative programming languages Constraint programming Logic programming Constraint logic programming Prolog programming language family {{prog-lang-stub