ふつうのPrologのインタープリターです。Javaのコードから呼び出すためのAPIを備えています。
java -jar prolog.jarこれでインタラクティブシェルが起動します。引数にファイル名を与えると、Prologスクリプトとして開いて、述語の定義をロードします。
importjp.segfault.prolog.*;
publicclassA {
publicstaticvoidmain(String[] args) {
Statestate = newState(System.in, System.out);
Queryquery = state.query("write(%msg).", "Hello, World!");
query.ask(); // output: Hello, World!
}
}importjp.segfault.prolog.*;
importjp.segfault.prolog.procedure.*;
importjp.segfault.prolog.term.*;
publicclassExportsextendsForeign {
@Declaration("rand_int/1")
publicstaticfinalForeignRAND_INT = newForeign() {
finalRandomgenerator = newRandom();
@OverrideprotectedCodecall0(Queryquery, Term... args) {
returnUNIFY.call(query, args[0], Term.valueOf(generator.nextInt()));
}
};
}- GUIとデバッガーの開発
- ISO Prologへの準拠
- 浮動小数点数のサポート
- 名前空間(モジュール)
- 未実装のISO標準述語(unify_with_occurs_check/2, acyclic_term/1など)
- 処理速度をもうちょっとマシに
- APIの改善
- 組み込みの述語の作成をもっと簡単に!
- Scala向けのインターフェイス
1.0.0
MIT