LocalazyLocalazy

Constraint Handling Rules

Constraint Handling Rules (CHR) je čistě logický programovací jazyk, který vyvinul Thom Frühwirth na univerzitě v Koblenzi-Landau v Německu. Je založen na myšlence constraint logic programming, která rozšiřuje logické programování o řešení omezení. V CHR jsou omezení občany první třídy a lze s nimi manipulovat jako s jinými datovými strukturami. Hlavní rozdíl mezi CHR a ostatními jazyky pro programování s omezeními spočívá v tom, že CHR nemá speciální řešič omezení. Místo toho má programátor plnou kontrolu nad procesem řešení omezení. To umožňuje mnohem deklarativnější styl programování, kdy se programátor může soustředit spíše na to, co má program dělat, než na to, jak to má dělat. Jazyk CHR byl navržen s ohledem na efektivitu. Je založen na malé sadě primitivních operací, které lze kombinovat a vytvářet z nich složitější operace. Jazyk je také staticky typovaný, což umožňuje efektivnější provádění. CHR je výkonný nástroj pro řešení složitých problémů. Zvláště dobře se hodí pro řešení problémů, které zahrnují velké množství manipulací s daty, jako je dolování dat a strojové učení.