LocalazyLocalazy

Constraint Handling Rules

Constraint Handling Rules (CHR) est un langage de programmation en logique des contraintes pure développé par Thom Frühwirth à l'université de Coblence-Landau en Allemagne. Il est basé sur l'idée de la programmation logique par contraintes, qui étend la programmation logique avec la résolution de contraintes. Dans CHR, les contraintes sont des citoyens de première classe et peuvent être manipulées comme n'importe quelle autre structure de données. La principale différence entre CHR et les autres langages de programmation par contraintes est que CHR ne dispose pas d'un solveur de contraintes dédié. Au lieu de cela, le programmeur a un contrôle total sur le processus de résolution des contraintes. Cela permet un style de programmation beaucoup plus déclaratif, où le programmeur peut se concentrer sur ce que le programme doit faire, plutôt que sur la façon de le faire. Le langage CHR a été conçu dans un souci d'efficacité. Il est basé sur un petit ensemble d'opérations primitives, qui peuvent être combinées pour former des opérations plus complexes. Le langage est également typé statiquement, ce qui permet une exécution plus efficace. CHR est un outil puissant pour résoudre des problèmes complexes. Il est particulièrement bien adapté aux problèmes qui impliquent beaucoup de manipulation de données, comme l'exploration de données et l'apprentissage automatique.