extPrologのソースコードは,extProlog.zipの中にある.
makeするとき,apacheがないLinuxのときは,
Makefileの中の2カ所の記述をdefaultに変更し,
>make clean
>make
とせよ.
makeするとき,Mac OS X 10.1-10.2の場合は、
アプリケーションのためのメモリー領域が制限されている場合もありますので、
メモリー領域を無制限にする設定をしておきましょう。
[student]$ limit stacksize unlimited [ Mac OS 10.3以降はこの設定不要]
その他,構成に合わせて適切なパラメータを削除するなり,他の技術資料も参照してください.
extProlog(実行ファイル名xsheet)をターミナルウインドウから起動するとき,
Solverやオートマトンを作りたいときは,./xsheetと入力する.
TPSを作りたいときは,ファイル名を指定して ./xsheet -f Prolog0.ctl とする.
extPrologの起動直後の制御は,
Solverやオートマトンに対しては,Prolog.ctlが行なう(デフォールト).
TPSに対しては,Prolog0.ctlが行なう
Prolog.ctlは,
turbolib.pやmms.pやdms.pなど,さまざまなコマンド定義集を読み込んでから,
MTABLEウインドウやDIALOGウインドウを開く.
これでMTA-SDKになる.
DIALOGウインドウの入力処理はProlog.ctlに書かれている.
入力が.setファイル名や.pファイル名なら,
処理経路 wmanager(), syscall.200(), dialog(), natlanpro()を経て,system1() に渡される.
system1()は,.pファイルをload_goコマンドで即実行する.
system1()は,.setファイル名をsetcompiler.pに渡す.
setcompiler.pは,
モデル(.set)の内容をextProlog言語に翻訳し,変数Lに代入する.
そのモデルの種類(automaton, solver, tps)に対応するエンジンをLに付加する.
変数Lの内容をファイル(.p)に書き込む(コンパイル).
ファイル(.p)を実行する.
setcompiler.pの中に,
fanc(...,delta1,lambda1,initialsatate1,...)
if lambda_FLAG(1) then
の記述あり.
stdAutomatonEngine.pの中に,
オートマトン実行エンジンの本体の記述あり.