LocalazyLocalazy

Constraint Handling Rules

Regras de Manipulação de Restrições (CHR) é uma linguagem de programação lógica pura de restrição desenvolvida por Thom Frühwirth na Universidade de Koblenz-Landau, na Alemanha. Baseia-se na ideia de programação lógica de restrição, que prolonga a programação lógica com resolução de restrições. Na CHR, as restrições são cidadãos de primeira classe e podem ser manipuladas como quaisquer outras estruturas de dados. A principal diferença entre CHR e outras linguagens de programação de restrições é que CHR não tem um solucionador de restrições dedicado. Em vez disso, o programador tem controlo total sobre o processo de resolução de constrangimentos. Isto permite um estilo de programação muito mais declarativo, onde o programador pode concentrar-se no que o programa deve fazer, e não em como o fazer. A linguagem CHR foi concebida com a eficiência em mente. Baseia-se num pequeno conjunto de operações primitivas, que podem ser combinadas para formar operações mais complexas. A linguagem também é tipada estaticamente, o que permite uma execução mais eficiente. CHR é uma ferramenta poderosa para a resolução de problemas complexos. É particularmente adequada para problemas que envolvem muita manipulação de dados, tais como a mineração de dados e a aprendizagem de máquinas.