OPS5> (p テスト (a) --> (remove 1) (write a がありました (crlf))) # ルールの入力. # ルールの意味「もし,WM(作業記憶:Working Memory) # 内に要素aが存在するならば,そのWMEを削除し画面に # メッセージを出力する」 OPS5> pm # 登録されているルールの確認 (p テスト (A) --> (REMOVE 1) (WRITE A がありました (CRLF))) OPS5> (make a) # WMへの要素aの追加 OPS5> wm # WM内に存在する要素の確認 1 [NIL] (A) OPS5> run # ルールの実行 A がありました # 実行結果 OPS5> wm # WMから要素aが削除されているため,何も表示されない OPS5>
上記の3つのルールを入力後,要素aをWMに追加し,ルールを実行すると 要素aを数えてくれる.(p 最初は1 (a) # 条件部「要素aが存在するならば」 --> (remove 1) # 実行部「数える対象である要素aを削除し,かつ, (make count 1)) # カウンタを用意し,初期値を代入する.」 (p 要素があれば数える (a) # 条件部「要素aが存在し,かつ, (count) # countが存在するならば」 --> (remove 1) # 実行部「その要素aを削除し,かつ, (modify 2 count (compute + 1))) # countに1を加える.」 (p 答えを返す (count ) # 条件部「countが存在するならば」 --> (remove 1) # 実行部「その要素countを削除し,かつ, (write 要素 a は 個ありました (crlf))) # countの値を出力する.」
OPS5> (make a) OPS5> (make a) OPS5> (make a) OPS5> run 要素 A は 3 個ありました OPS5>
上記のように実行結果を log.txt に書き出すと,OPS5.exeのある フォルダ上にそのファイルが保存される.OPS5> (openfile dump log.txt out) # dumpはファイル識別名です OPS5> (default dump write) # dumpにOPS5の出力を書き出す OPS5> (run) OPS5> (closefile dump) # ファイルクローズ
- 例題を作成する.
ここでは「数を数える」を例題として採用する.ソースファイルはここ(count.ops).注意:ファイルの拡張子は .ops とすること- 実行スクリプトを作成する.
作成したソースファイルを読み込み,実行するには,以下のような作業が必要である.OPS5> (watch 2) # 実行ルールとWMEの削除と追加に関するトレース OPS5> (openfile dump log.txt out) # 結果出力用ファイル log.txt の指定 OPS5> (default dump write) # 出力の書き出し開始 OPS5> (@ count.ops) # ソースファイル読み込み OPS5> pm # ルールの確認 OPS5> (make a) # 複数回WMEaを作成 OPS5> run # 実行 OPS5> (closefile dump) # 出力の書き出し終了これらの実行手順をスクリプト(example.ops)として作成し,保存する.- スクリプトの実行
- 方法1:OPS5起動し,を手順2で作成したスクリプトを入力する.
- 方法2:スクリプトファイルを startup.ops という名前でOPS5本体のあるフォルダに保存すると,OPS5を起動したときに自動実行される.
- 実行結果の参照
作成したスクリプトを実行すると,OPS5本体のあるフォルダ上に「 Log.txt 」というファイルが作成されている.このファイルに先ほどのトレース結果が書き出されているので,これを参考に正しく実行できているかを確認し,レポートを作成してください.