LocalazyLocalazy

Constraint Handling Rules

Constraint Handling Rules (CHR) es un lenguaje de programación de lógica de restricciones puro desarrollado por Thom Frühwirth en la Universidad de Koblenz-Landau (Alemania). Se basa en la idea de la programación lógica con restricciones, que amplía la programación lógica con la resolución de restricciones. En CHR, las restricciones son ciudadanos de primera clase y pueden manipularse como cualquier otra estructura de datos. La principal diferencia entre CHR y otros lenguajes de programación de restricciones es que CHR no tiene un solucionador de restricciones dedicado. En su lugar, el programador tiene pleno control sobre el proceso de resolución de restricciones. Esto permite un estilo de programación mucho más declarativo, en el que el programador puede centrarse en lo que debe hacer el programa, en lugar de en cómo hacerlo. El lenguaje CHR se ha diseñado pensando en la eficiencia. Se basa en un pequeño conjunto de operaciones primitivas, que pueden combinarse para formar operaciones más complejas. El lenguaje también está tipado estáticamente, lo que permite una ejecución más eficaz. CHR es una potente herramienta para resolver problemas complejos. Es especialmente adecuada para problemas que implican mucha manipulación de datos, como la minería de datos y el aprendizaje automático.