このリリースでの改良は以下の通りです。XMLの読取りと書込みのための述語、アトムと項についてのテキスト処理の強化、より簡単に黒板データにアクセスするためのプログラム、長い間待たれていた項ベクトル(インデックス-アクセスされたサイズ変更可能なアレイ)、ユーザーまたはプロセス対話のためのきめの細かいタイマー述語、リストのマージソート、決定を行うメタ・コール、クライアント-サーバ分散処理のための一組の述語、およびお客様より提起された問題点の改良です。最後の改良については、問題提起下さったお客様にお礼を申し上げます。
- XML項を処理すること
XML項への入力、XML項への出力、Prolog項とXML項との双方向の変換。
記述言語としてのXMLは、XML項のセマンティクスを実装するための言語であるMINERVAによくマッチします。
XMLフォーマットでの頑強なデータにより、XMLを知る他のソフトウェアコンポーネントと統合するのに便利になります。
以下の述語があります:
read_xml/2/3、write_xml/1/2、term2xml/3、term2xmldoc/3、xml2term/3、xmldoc2term/3。
詳細
- アトムと項に関するテキスト処理の強化
テキスト処理ライブラリは拡張され、頻繁に使われるタスクのために、新しい述語が2,3できました。現在以下の述語があります。:
atom_chars/2、atom_codes/2、atom_concat/3、atom_concat/2、atom_length/2、atom_number/2、atom_lower/2、atom_upper/2、char_code/2、number_chars/2、number_codes/2、parse_atom/2/3、sub_atom/5、write_atom/2, writeq_atom/2
詳細
- より簡単に黒板データにアクセスするためのプログラムが可能になりました。
黒板(すなわち作業データのための速いハッシュ名テーブル)は、プログラミングの柔軟性のために拡張されました。 動的に一つの項目または全部の名をつけられたデータ・セットを付け加えたり削除することができます。 独立の名前空間をつくることができます。
現在提供されている述語は以下の通りです。:
bb_clear/1、bb_clear/2、bb_contains/2、bb_contains_key/2、bb_create/1、bb_get/3、bb_get/4、bb_put/3、bb_put/4、bb_remove/2、bb_keys/2、 bb_elements/2
詳細
- デ−タ型ベクトル
項ベクトルは、項の動的にサイズ変更可能なインデックス-アクセスされたアレイです。
例えばリストでは実装するのが難しい効率的にインデックスされたアクセスを可能にします。
また、要素の破壊的な割当てを可能にします。
このデータ構造は、大きくかつよく構造化されたデータの表を効率的に処理するのに、非常に便利です。
以下の述語があります。
tv_add/2、tv_create/1、tv_get/3、tv_list/2、tv_set/3、tv_setsize/2、tv_size/2
詳細
- タイマー述語
非同期のタイミングのためのマルチスレッドを使う単純なプログラミングインターフェース。
タイミングは、例えば、きめの細かいユーザ・インタフェースのために、そして、リアルタイム・システムのために必須の素子です。 マルチスレッドの複雑さは、登録されたコールバックのために、リスナーの概念から離れて抽象化されます。
以下の述語があります。
timer_close/1、timer_create/2、timer_is_active/1、timer_start/2、timer_stop/1
詳細
- リストのマージソートをします。
倍精度実数を削除することなくリストをソートします。
merge_sort/2
詳細
- 決定を行うメタ・コール
ソフトウェアエンジニアリング上の理由のために加えられたのは、メタコールで、一度だけそのゴールを実行して、ゴールが失敗するならば、例外を出すメタ・コールです。 論理的失敗が意味をなさない状況、例えば、ユーザーとの対話処理からコールバックを処理するなどの状況において、このコンストラクトは頑強なプログラムのために必要とされます。
fcall/1
詳細
- 分散しているクライアント-サーバ処理のための述語
インターネット・ソケットの上の分散されたMINERVAプロセス間の通信のための高水準プログラミングインターフェースです。 協力しあうエージェント、デリゲーション(代表)、マルチクライアント、またマルチサーバーシステムのために、充分に構造的MINERVA項を送受信することが可能です。
サーバ側のMINERVAプロセスをデーモン・モードで走らせることができます。
XML処理(上を参照して下さい。)と非同期のタイミング(上を参照して下さい)との関係に注意して下さい。
client_start/3、client_stop/1、listener_start/3、listener_stop/3、send/2、send/2、server_start/4、server_stop/1
詳細
- JavaScriptの呼び出し
クライアント側のMINERVAへのクライアント側のJavaScriptの統合の例が、お客様の要請に従って付け加えられました。 これは、MINERVAから既存のJavaScriptプログラムを起動したり、マイクロソフト・オペレーティング・システムの上で、COMコンポーネントを起動したりするのに便利です。
提示した例題は、理解し非常にやすくてNetscapeとInternet Explorerの両方に互換性を持ちます。
詳細
- Javaプログラムの統合に関するマニュアルの改善
自分自身のあるいは第三者のJavaクラスでのMINERVAの拡張に関する説明が改善されています。 静的なリンク、動的なリンク(リフレクションを介したもの)に関する相違、きめの細かいシステムレベルのインタフェースとは異なる自動インタフェース生成ツールmetagenに関する使用のヒントも含まれています。
詳細