next up previous
Next: 制約に基づく解析の最適化への応用 Up: 研究上の成果 Previous: 静的解析と制約充足によるバグの自動修正

並行論理プログラムのOccur-check解析

Occur-check解析とは、プログラム中のある変数が、自分自身を真に含むデータ 構造と単一化されないかどうかを解析することをいう。また、同一変数どうしの 単一化(並行論理プログラミングでは無意味であることが多い)も検出対象に加え た解析を、拡張occur-check解析という。

Prologや並行論理型言語の処理系では、効率上の理由から(拡張) occur-checkは 実装されておらず、これは理論的には軽視できない欠陥であると同時に、並列実 装を複雑にする原因にもなっている。Occur-checkの静的解析はPrologにおいて は多くの研究があるが、未だ一般的方法は確立されていない。並行論理型言語に おいては未開拓であるのが現状である。そこで、並行論理型言語のoccur-check の静的解析の方法を検討した。Deransartの示したNSTO (Not Subject To Occur-check)の条件を参考にし、さらに高精度で低コストなアルゴリズムを示し た。これを用いれば、KL1の有名なプログラムのほとんどが、その節の数をn、 1節あたりのボディアトムの数をbとしたときO(nb^2)の時間で解析で きることが分った。



next up previous
Next: 制約に基づく解析の最適化への応用 Up: 研究上の成果 Previous: 静的解析と制約充足によるバグの自動修正



www-admin@icot.or.jp