CHRとは?
Last-modified: 2011-01-15 (土) 13:59:46 (4873d)
Top / CHRとは?
概要 †
- Constraint Handling Rules (CHR) は、制約充足系を簡潔に記述することを目的として、1991年にThom Frühwirthによって考案されたプログラミング言語モデルです。
- 計算の実行手順よりも、求める解の性質を記述することに重きを置く宣言型プログラミング言語に属します。
- その中でも制約多重集合の書換えに基いて計算処理が行われる点が特徴的です。
- 高い表現力を活かし、現在は汎用的な並行制約プログラミング言語としての開発・利用が進んでいます。
- 実用的なアプリケーションへの適用実績もあります。
各種処理系 †
- CHRは、CHRのみでプログラムを実行することは出来ず、Prolog, Haskell, Javaなどのホスト言語上にライブラリとして提供されています。
- ホスト言語として最も一般的なのはPrologで、SWI-Prologを始めとする多くの処理系でCHRがサポートされています。
- ホスト言語ごとの代表的な処理系は以下の通りです。
- Prolog 処理系
- Haskell 処理系
- Concurrent CHR (開発者ページ消失のため論文のみ)
- Java 処理系
- その他
- LMNtal (CHR in LMNtal で紹介)
文献 †
- Constraint Handling Rules (Thom Fru"hwirth著、書籍)
- WEB CHR (本家CHR サイト)