Skip to main content
QUICK REVIEW

[論文レビュー] Periodic Single-Pass Instruction Sequences

J.A. Bergstra, Alban Ponse|arXiv (Cornell University)|Oct 7, 2008
Formal Methods in Verification参考文献 8被引用数 4
ひとこと要約

本稿では、原始命令と繰り返し命令を用いた周期的単一パス命令列の形式的モノイドベースのモデルを導入し、単一パスおよび構造的同値性のための恒等的公理によってプログラム代数(PGA)を支える部分モノイド($K_r^-$)を確立する。主な貢献は、無効な繰り返しカウンタ(例:繰り返し回数が直前の命令数を超える場合)による意味論的曖昧さを回避する、制限された繰り返しベースのプログラムのクラスを用いた、洗練された数学的に厳密なプログラム代数の基盤を提供することにある。

ABSTRACT

A program is a finite piece of data that produces a (possibly infinite) sequence of primitive instructions. From scratch we develop a linear notation for sequential, imperative programs, using a familiar class of primitive instructions and so-called repeat instructions, a particular type of control instructions. The resulting mathematical structure is a semigroup. We relate this set of programs to program algebra (PGA) and show that a particular subsemigroup is a carrier for PGA by providing axioms for single-pass congruence, structural congruence, and thread extraction. This subsemigroup characterizes periodic single-pass instruction sequences and provides a direct basis for PGA's toolset.

研究の動機と目的

  • 周期的な命令列を生成する順序的命令型プログラムの数学的に厳密なモノイドベースの形式的体系を構築すること。
  • 繰り返しカウンタが不適切な場合(例:直前の命令数を超える)に生じる意味論的曖昧さを回避する $K_r$ の部分モノイド $K_r^-$ を定義すること。
  • 単一パス同値性および構造的同値性のための恒等的公理を確立し、それらが行動的意味論を保存することを保証すること。
  • $K_r^-$ がプログラム代数(PGA)の直接的かつ洗練された基盤を提供することを示し、射影における $\#0$-挿入のような任意の拡張を回避すること。
  • $K_r^-$、PGA、および PGLA や C などの代替表記法との関係を明確にし、$K_r^-$ を PGA のための好ましいプログラム表記法と主張すること。

提案手法

  • 原始命令 $\mathcal{U}$ と連結演算に基づくモノイド $K$ を用いて、有限命令列をモデル化する。
  • 直前の $n$ 個の命令を繰り返す命令 $\backslash\!\backslash\#n$ を追加することで、$K$ を $K_r$ に拡張する。
  • 式 $u_1;\dots;u_k;\backslash\!\backslash\#n$ において $k \leq n$ が成り立つように $K_r$-式の部分集合 $K_r^-$ を定義し、実行が明確に定義されることを保証する。
  • スレッド代数を用いて、スレッド抽出により行動的意味論を定義し、プログラムをその実行スレッドに写像する。
  • 単一パス同値性(同一の SPI を生成するプログラムを同定する)および構造的同値性(ジャンプカウンタの展開を保存する)のための公理を導入する。
  • $K_r^-$ を PGA に射影する標準的写像を用い、$K_r^-$ が PGA のツールキットの直接的かつ曖昧でない基盤を提供することを示す。

実験結果

リサーチクエスチョン

  • RQ1単一パス実行モデルにおいて、どのように有限な命令列を形式的に定義することで、周期的かつ無限の命令列を生成できるか?
  • RQ2$K_r$-式が、意味的に明確に定義された SPI を生成する有効なプログラムであるためには、どのような条件を満たす必要があるか?
  • RQ3単一パス同値性および構造的同値性のための恒等的公理をどのように導出できるか? これにより、プログラムの行動的同値性が保証される。
  • RQ4なぜ PGLA から PGA への射影において $\#0$-命令の挿入が恣意的で問題であるとされるのか?
  • RQ5$K_r^-$、PGA、および C や PGLA などの代替プログラム表記法との正確な関係は何か?

主な発見

  • 式 $u_1;\dots;u_k;\backslash\!\backslash\#n$ において $k \leq n$ を要求することで定義される部分モノイド $K_r^-$ は、すべての式が明確に定義された周期的 SPI を生成することを保証する。
  • 単一パス同値性は、同一の SPI を生成するプログラムを同定し、構造的同値性はジャンプカウンタの展開においても行動的意味論を保存する。
  • スレッド抽出により $K_r$-プログラムがスレッドに写像され、スレッド代数を用いて行動的意味論が可能になる。
  • PGLA から PGA への射影関数 $\mathtt{pgla2pga}$ は、繰り返しカウンタが大きすぎる場合に $\#0$ 命令を恣意的に挿入するため、問題であることが示された。
  • 本稿は、$K_r^-$ が PGLA よりも任意の拡張を避け、洗練された意味論を維持するため、PGA のための優れた曖昧でないプログラム表記法であると結論づける。

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

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

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

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