著者
片峯 恵一 廣田 豊彦 周能法 長澤 勲
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.37, no.6, pp.1130-1137, 1996-06-15
被引用文献数
4

ドメインの知識を記述するための言語処理系のプロトタイプ用言語には 1)言語処理系の開発に適していて 理解性 保守性にすぐれている 2)実際に運用可能な性能を実現できる 3)移植性にすぐれている などの要件がある.そのような要件を満たす言語として著者らはβ-Prologの開発を進めている.本研究では 決定的な述語をCへ変換することによって β-Prologのいっそうの高速化を目指した.具体的な変換手順は 1)β-Prologコンパイラの中間データである照合木を入力とする 2)照合木を抽象機械NTOAMの命令系列へ展開する 3) NTOAMの各命令をCの文へ変換する となる.このようにしてCへ変換された決定的な述語は NTOAM上で解釈される非決定的な述語と組み合わせて実行することができる.実行性能を評価した結果 非決定性を含む8-queenのような問題であっても SICStusのネイティブコード・コンパイラよりも高い性能を示した.人手でCプログラムヘ変換することによってさらに性能を向上させることが可能であるが そのためには膨大な労力を要し しかも理解性や保守性が低下する.したがって 本論文で提案した手法は 実用的なプロトタイプの開発にきわめて有用であると考えられる.The requirements for a language to be a good implementation language for knowledge representation languages include: 1) be suitable for developing language processors, and have good understandability and maintainability, 2) have fair performance tolerable for practical uses, and 3) have good portability. We have been developing β-Prolog to satisfy the above requirements. In this research, we have aimed to improve the performance of β-Prolog by translating determinate predicates to C. Our translation procedure works as follows: 1) input the matching trees which are intermediate data of the β-Prolog compiler, 2) flatten the matching trees into a sequence of NTOAM instructions, 3) convert each NTOAM instruction to C statements. The C program translated from determinate predicates can be linked with nondeterminate predicates which are interpreted by NTOAM. Our evaluation result shows that our method is superior in performance to SICStus native code compiler even when a program has nondeterminism like 8-queen. Manual translation to C program might improve the performance further, but it would take enormous efforts and degrade the understandability and maintainability. We think that our method is much effective for developing practical prototype systems.