このリリースでは、ダイナミック述語の高速化、これを扱うPrologフラグの提供、お客様から頂いた要望に基づいた改良がなされました。ご意見を頂いたお客様には心よりお礼を申し上げます。...
移動
次へ 前へ
上へ 最上
参考
MINERVA2.4
MINERVA2.3
MINERVA2.2
MINERVA2.1
MINERVA2.0
MINERVA1.3
MINERVA1.2
MINERVA1.1
MINERVA1.0
イフコンピュータ > MINERVA > マニュアル > リリースノート > MINERVA2.1

MINERVA2.1

このリリースでは、ダイナミック述語の高速化、これを扱うPrologフラグの提供、お客様から頂いた要望に基づいた改良がなされました。ご意見を頂いたお客様には心よりお礼を申し上げます。 CORBA用述語は、拡張セットに加えられました。

注:

  1. *.mbc MINERVAバイナリコードは、MINERVAの以前のバージョンと互換性を持ちません。 あなたの*.mbcバイナリコード・ファイルをアップデートするために、*.minソースファイルを再コンパイルしてください。
  2. *.min MINERVAソース・プログラムは、上位互換性を持ちます。
  3. MINERVAライブラリをアクセスするカスタム・ファイルを使っている場合、あなたの*.mspと*.mca (MINERVA Startup PropertyとCompressed Archives)をアップデートしてください。
  4. このバージョンは、Java 1.1、Java1.2上で実行されます。 (注意: Netscape 4.0.4以前のバージョンでは十分ではありません。)

新しい機能:

  1. 速いダイナミック述語

    ダイナミック述語(dynamic、asserta、assertz、retractを参照してください)は、賢いインデクシングをするように実装されています。 ダイナミック述語を多く利用する顧客アプリケーションでは、MINERVAの今までのバージョンに比して2桁のパフォーマンス増加を達成しました。

    MINERVAにおけるインデクシングについて: インデクシングは、リニアから一定時間に、指数時間から対数時間まで、データ集合へのアクセス速度をあげるいろいろな方法に対する一般的な言葉です。 MINERVAにおいては、3種類のデータがあります: コンパイルされた述語、ダイナミック述語と黒板です。

    コンパイルされた述語の場合、「最初の引数インデクシング」が最初の引数が変数でない述語の集合のために使われます。 インデクシングは、述語の関数子とアリティおよび最初の引数の関数子について作用します。より深い項の部分については使われません。

    ダイナミック述語では、MINERVAが価値があるとみなすときはいつでも、変数として決してアサートされない全ての引き数に対して「賢いインデクシング」がされます。 インデクシングは述語の関数子とアリティと、目標とされた引き数の関数子とに関して働きます、項のより深い部分は使われません。

    黒板で保存されるデータの場合、「徹底的なインデクシング」はキーに対して行われます: より深い部分を含む全部の項が、インデクシングのための材料として使われます。

    プログラミングのヒント:

    1) インデクシングは、「変数ではない」データ・セットのために行われます。つまり重要な場所にある変数に対して作動されません。 以下のようなものをインデクシングすることによって:

    		a(1).
    		a(2).
    		a(X) :- X = undetermined.  % catch-all case
    	
    スピードアップにはつながりません。 これは悪い例です。

    2) インデクシングされたデータ・セットへのアクセスは、キーが実際に使われる時のみ速くなります。 以下を比較してください:

    	Data:
    		male(eric).
    		male(健太郎).
    			:
    		female(美香).
    		female(sonya).
    			:
    	Program:
    		% GOOD			% BAD
    		?- male(charles).	?- male(X), X = 薫.
    	

  2. prolog_flags MINERVA 2.1は、set_prolog_flag/2とget_prolog_flag/2を知っています:

    set_prolog_flagは、'error', 'warning', 'unknown'を知っています。

    get_prolog_flagは、'max_arity'と'unknown'を知っています。

    ISO Prolog標準に違反して、get_prolog_flagへの最初の引数は、値を与えられなければなりません。

  3. predicate_type/2 predicate_type/2は、dynamic、staticまたはundefinedを返します。

  4. sort/2の改善

    お客様の要望に従い、sort/2は新しくなり、非常に効率的でより良くなりました。

  5. 例題プログラム/拡張におけるCORBA

    お客様の要望に従い、CORBAにアクセスするソースとプリコンパイルされたMINERVA述語を追加しました。 例題プログラム/拡張/CORBA/を参照してください。

MINERVAの以前のバージョンのリリースノートも再読してください。 次のリリースの為に、ご意見、ご希望をお寄せください。

続く..
MINERVA
ifcomputer logo
f
Expert Services on the Web
言語
English
Japanese
サーバー
USA
Japan
サイトマップ
索引
目次
全体目次
全体索引
印刷向き
imode
PDA
探索
document: http://www.ifcomputer.co.jp/MINERVA/Manual/ReleaseNotes/MINERVA2.1/home_jp.html
published 2008/9/1 update 1999/10/8 (c) 1996-2006 IF Computer Japan
IF Computer 〒113-0022 Tel 03-5814-3352 start (AT) ifcomputer.com
Customer Support 東京都文京区千駄木5-28-2   http://www.ifcomputer.co.jp
冒頭へ managed with ubiCMS