fixedpoint.jp - JCHR




JCHR

一般に論理プログラミングと呼ばれるプログラミングスタイルには、適用する対象の特徴に応じていくつかのトピックがあります;

人工知能
幅広いテーマにまたがる。必ずしも論理プログラミングに限定されない。
データフロー
問題領域のモデルを積極的に利用するために論理プログラミングが利用される場合がある。
制約プログラミング
問題を制約という形で記述しそれを解消(充足)するシステムを前提にする。

今回新たに見つけたユニークな試みは、制約論理プログラミングの手法を Java で利用できるシステム JCHR です。これは Constraint Handling Rules の実装で、名前は Java Constraint Handling Rules の頭文字です。

これまでの Constraint Handling Rules といえば、伝統的に Prolog の各処理系に導入されているものや Haskell での独自の実装(EHC)などがありました。一方 Java で制約プログラミングをするには、Prolog Cafe という包括的な論理プログラミングを可能にするトランスレータがあります。

JCHR は Constraint Handling Rules に特化しており、標準的なルールの記法を採用しています。配布されている jar を CLASSPATH に置くことで Java 1.5 で利用できるという形になっています。ドキュメントや例が充実している点、さらにオープンソースである点が素晴らしいと思います。


© 2006-2008 Takeshi Abe