Skip to main content
QUICK REVIEW

[論文レビュー] The Language Features and Architecture of B-Prolog

Neng‐Fa Zhou|arXiv (Cornell University)|Mar 4, 2011
Logic, programming, and type systems参考文献 45被引用数 10
ひとこと要約

本論文では、有限ドメイン制約の解法、テーブル化、アクションルール、配列といった高度な機能を備えた高速なPrologシステム、B-Prologを提示する。TOAM Jr.抽象機械アーキテクチャについて詳述しており、スタックベースの引数渡し、可変長命令、アクションルールおよび線形テーブル化のネイティブサポートを特徴としており、解釈オーバーヘッドの低減と効率的なコンテキストスイッチングにより、標準ベンチマークで60%以上の高速化を達成している。

ABSTRACT

B-Prolog is a high-performance implementation of the standard Prolog language with several extensions including matching clauses, action rules for event handling, finite-domain constraint solving, arrays and hash tables, declarative loop constructs, and tabling. The B-Prolog system is based on the TOAM architecture which differs from the WAM mainly in that (1) arguments are passed old-fashionedly through the stack, (2) only one frame is used for each predicate call, and (3) instructions are provided for encoding matching trees. The most recent architecture, called TOAM Jr., departs further from the WAM in that it employs no registers for arguments or temporary variables, and provides variable-size instructions for encoding predicate calls. This paper gives an overview of the language features and a detailed description of the TOAM Jr. architecture, including architectural support for action rules and tabling.

研究の動機と目的

  • 制約解決と動的プログラミングに適した高度な言語機能を備えた高速Prologシステムの設計および実装を目的とする。
  • 抽象機械エミュレータにおける細粒度の命令解釈の性能ボトルネックを解消することを目的とする。
  • アクションルールおよびサスペンションフレームを通じて、効率的なイベント駆動型プログラミングと制約の伝搬を支援することを目的とする。
  • 最小限のアーキテクチャ変更で、論理プログラムにおける固定点計算を効率的に行える線形テーブル化を実装することを目的とする。
  • 機械学習などの大規模アプリケーション向けに、メモリ管理とスケーラビリティを向上させることを目的とする。

提案手法

  • TOAM Jr.アーキテクチャはスタックベースの引数渡しを採用し、一時レジスタを排除することで解釈オーバーヘッドを低減する。
  • 可変長で特殊化された命令により、述語呼び出しを直接符号化し、細粒度命令セットで一般的なディスパッチコストを最小限に抑える。
  • アクションルールはスタック上のサスペンションフレームとして保存されるプロパゲーターにコンパイルされ、ヒープ割り当てを回避する高速なコンテキストスイッチングを可能にする。
  • 線形テーブル化は、最上位のループする部分目標の反復的計算を用い、スタックフレームを凍結する必要がなくなり、ガベージコレクタを維持する。
  • テーブル化された述語は、新しいテーブルフレーム型を用い、SubgoalTableおよびCurrentAnswerポインタを用いて答えの消費と部分目標の再利用を管理する。
  • 線形テーブル化における再計算コストの低減を図る最適化を統合し、SLGと同等の時間効率を達成する。

実験結果

リサーチクエスチョン

  • RQ1どのようにして、高度な言語機能をサポートしつつ、解釈オーバーヘッドを低減したProlog抽象機械を再設計できるか?
  • RQ2効率的なアクションルールおよびイベント駆動型制約伝搬をサポートするために、どのようなアーキテクチャ的変更が必要か?
  • RQ3最小限の抽象機械への変更で、空間効率を維持しながら線形テーブル化を実装するにはどうすればよいか?
  • RQ4可変長命令は、従来の細粒度命令セットと比較して、Prologエミュレータの性能向上に寄与できるか?
  • RQ5テーブル化とアクションルールの統合は、論理プログラムのスケーラビリティおよびパフォーマンスにどのような影響を与えるか?

主な発見

  • TOAM Jr.アーキテクチャのおかげで、B-Prologは、前回のATOAMベースのシステムと比較して、Aquariusベンチマークで60%以上の高速化を達成した。
  • 一時レジスタの排除と可変長命令の使用により、解釈におけるディスパッチコストが顕著に低減された。
  • スタック上に配置されたサスペンションフレームにより、プロパゲーターの高速なコンテキストスイッチングが実現され、効率的な制約解決に不可欠であった。
  • 線形テーブル化は、スタックフレームを凍結しないことでSLGよりも優れた空間効率を達成した一方で、再計算コストの低減最適化により、性能を向上させた。
  • テーブル化とアクションルールのための最小限のアーキテクチャ変更は、TOAM Jr.設計の拡張性を示した。
  • PRISMのテーブル化およびメモリ管理の改善を統合することで、B-Prologのコアシステムの堅牢性とパフォーマンスが向上した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。