my-server
← Wiki

BNR Prolog

BNR Prolog, also known as CLP(BNR), is a declarative constraint logic programming language based on relational interval arithmetic developed at Bell-Northern Research 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) 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 is performed on real interval values, it is possible to express and partially solve non-linear equations.

Example rule

The simultaneous equations:

are expressed in CLP(BNR) as:

and a typical implementation's response would be:

<samp> X = _58::real(1.0966681287054703,1.0966681287054718),<br> Y = _106::real(1.9486710896099515,1.9486710896099542). <br> Yes<br> </samp>

See also

References

General references

  • J. G. Cleary, "Logical Arithmetic", Future Computing Systems, Vol 2, No 2, pp.&nbsp;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