MINERVA自体による制限は、それほど存在しません。
項は、125以上の引数をとることはできません。
MINERVAでの整数は64ビットで表現されています。 つまり、Javaデータタイプの"long"に相当するので、 1,000,000,000,000,000,000までの整数を扱えます。
同じファンクターとアリティを持つ大規模な(数千から万の程度の)節の
集合では、コンパイラオーバーフローを起こす可能性があります。
MINERVA 2.3以前のバージョンでは、オーバーフローは報告されず、
単に無効なコードを生成し、オブジェクトロード時に、ArrayIndexOutOfBoundsException
を引き起こします。
MINERVA 2.3のコンパイラでは、以下のようなエラーメッセージが出ます。
** minerva assembler: com.ifcomputer.minerva.MC26: codearea is too huge
もし、この条件に当たったら、障害となっている述語を
ダイナミックとして宣言して下さい。例えば、:- dynamic(myfactdb/5) 。
異なる最適化の戦略が使われることにより、あなたのプログラムの
効率もあがります。
現在のところ、MINERVAのエンジンのこれ以外の制限について つまり、リストの長さ、アトムの大きさなどについて把握していません。
プログラムの大きさや実行時間などの実際的な制限については、 実行速度、Java言語処理系、OS、ハードウェアアーキテクチャ に依って異なります。