BNR Prolog , también conocido como CLP(BNR) , es un lenguaje de programación lógica con restricciones declarativo basado en aritmética de intervalos relacional desarrollado en Bell-Northern Research en las décadas de 1980 y 1990. La integración de la aritmética de intervalos relacional en un lenguaje de programación lógica se diferencia de otros sistemas de programación lógica con restricciones (CLP), como CLP(R) o Prolog-III, en que no realiza ningún procesamiento simbólico. BNR Prolog fue la primera implementación de aritmética de intervalos en un lenguaje de programación lógica. [ 1 ] Dado que la propagación de restricciones se realiza sobre valores de intervalo reales, es posible expresar y resolver parcialmente ecuaciones no lineales . [ 2 ]
Regla de ejemplo
Las ecuaciones simultáneas :
se expresan en CLP(BNR) como:
?- { X >= 0 , Y >= 0 , tan ( X ) == Y , X ** 2 + Y ** 2 == 5 }.y la respuesta de una implementación típica sería:
X = _58::real(1.0966681287054703,1.0966681287054718), Y = _106::real(1.9486710896099515,1.9486710896099542). Sí
Véase también
Referencias
- ↑ Rossi, Francesco; Van Beek, Peter; Walsh, Toby , eds. (2006). Manual de programación con restricciones (Tapa dura) . Elsevier. ISBN 9780444527264.
- ↑ Jaffar, Joxan; Maher, Michael J. (1994). "Programación lógica con restricciones: una revisión" . The Journal of Logic Programming . 19–20 . Elsevier: 503–581 . doi : 10.1016/0743-1066(94)90033-7 .
Referencias generales
- JG Cleary, "Aritmética lógica", Future Computing Systems, Vol. 2, No. 2, págs. 125–149, 1987.
- W. Older y A. Vellino, " Extensión de Prolog con aritmética de restricciones en intervalos reales ", en Actas de la Conferencia Canadiense de Ingeniería Eléctrica e Informática, 1990.
- Older, W., y Benhamou, F., Programación en CLP(BNR), en: 1er Taller sobre Principios y Práctica de la Programación con Restricciones, 1993.
Enlaces externos
- Sitio de GitHub para una reimplementación de 2018 en SWI-Prolog
- lenguajes de programación declarativos
- Programación con restricciones
- Programación lógica
- Programación lógica con restricciones
- Familia de lenguajes de programación Prolog
- Temas básicos de lenguajes de programación