2014/05/26 Update

主たる機能追加は「プログラミングサポート機能の強化」です



【動作環境】

64bit版: 64bit Windows(vista,7,8) Ubuntu12.4,Ubuntu14.04
32bit版: 32bit Windows(vista,7,8) Ubuntu12.4,ubuntu14.04



【Version7.53 と今回のリリース版との相違】
1)  コンサルト時のエラー箇所詳細表示 ─── マニュアル 「5-9-1.構文エラー」
2)  述語コールカウンタ ─── マニュアル「6-4-5.述語コールカウンタ」
3)  コンパイル領域不足エラー時のチェック方法 ─── マニュアル「7-5-A.コンパイラワークエリア指定」
4)  制約変数の制約情報表示 ─── 下記実行例 1: 参照
5)  trace時にFrozenGoal惹起、収束の表示 ─── 下記実行例 1: 参照
6)  制約変数対応の f_setof/3,f_bagof/3,f_assert/1,f_assertz/1 ─── 下記実行例 2: 参照

<1: 実行例 (4)(5)(一部略)>
* 制約された変数を表示する時に 変数名 /* 領域 :: FrozenGoal */ を表示
* FrozenGoalが起動されたときに  === Frozen Goal Invoked!! === と表示
* FrozenGoalが成功したときに   === Succ From Frozen Goal === と表示
* FrozenGoalが失敗したときに   === Fail From Frozen Goal === と表示

| ?-leash2(3).
yes
| ?-trace.
yes
debug mode on
||?-freeze(X,write(X)),X in 1..10,X=10.
 [1] 0 Try   : freeze(X_22,write(X_22)) ? 
 << BUILTIN CALL >>
 [1] 0 Succ  : freeze(_24 /* _::write(_24),! */ ,write(_24 /* _::write(_24),! */ ))
 [1] 0 Try   : _24 /* _::write(_24),! */  in 1..10 ? 
 << BUILTIN CALL >>
 [1] 0 Succ  : _24 /* [1..10]::write(_24),! */  in 1..10
 [1] 0 Try   : _24 /* [1..10]::write(_24),! */ =10 ? 
 << BUILTIN CALL >>
 === Frozen Goal Invoked!! ===
 [1] 0 Try   : write(10),! ? 
 << BUILTIN CALL >>
 [1] 0 Try   : write(10) ? 
 << BUILTIN CALL >>
10 [1] 0 Succ  : write(10)
 [1] 0 Try   : ! ? 
 << BUILTIN CALL >>
 [1] 0 Succ  : !
 [1] 0 Succ  : write(10),!
 === Succ From Frozen Goal ===
 [1] 0 Succ  : 10=10
 [1] 0 Succ  : freeze(10,write(10)),10 in 1..10,10=10
X       = 10
yes


< 2: 実行例 (6)>
* f_assert/1 制約された変数を含む項をアサートする際、その情報も含んでアサートします
* f_setof/3など。制約を含む変数も復元して解の集合を取得します。

| ?-freeze(X,write(X)),f_assert(a(X)).
X       = _16
yes
| ?-f_setof(Y,a(Y),L),L=[data].
data
Y       = _16,
L       = [data]
 
上部へスクロール