Skip to main content
QUICK REVIEW

[論文レビュー] Programming an interpreter using molecular dynamics

J.A. Bergstra, C.A. Middelburg|ArXiv.org|Jan 15, 2008
Formal Methods in Verification参考文献 25被引用数 5
ひとこと要約

本稿では、プログラム代数(PGA)を用いて実装された、最小限のアセンブリ風言語(PGLD)の新しいインタプリタを提示する。分子動力学のプリミティブを低レベル命令として用いる。プログラム状態を分子構造としてモデル化し、アクションに基づく変換を用いることで、動的状態変化によるプログラムの解釈を正しく行う最小限のインタプリタを示した。形式的スレッド代数の意味論を用いてその正しさを証明した。

ABSTRACT

PGA (ProGram Algebra) is an algebra of programs which concerns programs in their simplest form: sequences of instructions. Molecular dynamics is a simple model of computation developed in the setting of PGA, which bears on the use of dynamic data structures in programming. We consider the programming of an interpreter for a program notation that is close to existing assembly languages using PGA with the primitives of molecular dynamics as basic instructions. It happens that, although primarily meant for explaining programming language features relating to the use of dynamic data structures, the collection of primitives of molecular dynamics in itself is suited to our programming wants.

研究の動機と目的

  • 基本的なプログラム代数と分子動力学プリミティブのみを用いて、単純なアセンブリ風言語の最小限で形式的に検証されたインタプリタを設計すること。
  • 分子動力学—元々は動的データ構造のモデル化を目的としていた—が、インタプリタの実装の基盤的計算モデルとして機能できるかどうかを検討すること。
  • 明示的なポインタ操作を避けて、原子的アクションと構造的変換のみを用いて最小限のインタプリタを構築できるかどうかを示すこと。
  • 間接ジャンプをサポートするようにインタプリタを拡張し、モデルが一般的なアセンブリ言語の機能へ拡張可能であることを示すこと。
  • 基本スレッド代数(BTA)に基づく形式的意味論とアクション変換型サービス構成を用いて、インタプリタの正しさを検証すること。

提案手法

  • 各分子がレジスタ、制御フロー、次に実行する命令を保持するフィールドを備えた、プログラムの実行時状態としての分子構成をモデル化する。
  • 分子動力学プリミティブ(例:set, jmp, reg, cont, nxt)を用い、分子の構造的変換によって命令実行をシミュレートする。
  • 基本スレッド代数(BTA)を用いたスレッドベースの実行モデルを定義し、各命令をサービスと相互作用する基本アクションとして対応付ける。
  • アクションが分子構造を変更し、真偽値の返り値を返す状態ベースのサービスモデルを導入する。
  • PGLDプログラムの分子的表現を作成するPGAプログラムと、ステップバイステップの実行をシミュレートする解釈プログラムの両方を構築する。
  • レジスタ値による動的ターゲット解決を可能にするために、分子モデルを拡張し、間接ジャンプを処理するようにインタプリタを適合させる。

実験結果

リサーチクエスチョン

  • RQ1分子動力学プリミティブを、正しく動作するインタプリタの基盤命令セットとして効果的に使用できるか?
  • RQ2構造的変換による分子の変形のみを用いて、最小限のアセンブリ風プログラム記法を表現・解釈できるか?
  • RQ3アクション変換型サービス構成を用いることで、インタプリタスレッドと分子状態サービスとの間の相互作用をどのようにモデル化できるか?
  • RQ4分子動力学モデルは、間接ジャンプのような一般的なプログラミング言語機能をどの程度サポートできるか?
  • RQ5スレッド代数とプログラム代数の意味論を用いて、最小限のインタプリタを形式的に正しく証明できるか?

主な発見

  • 提示されたインタプリタは、分子状態変換による実行シミュレーションを通じて、すべてのPGLDプログラムを正しく解釈する。
  • 形式的証明により、インタプリタの振る舞いが期待される意味論と一致することが示された:|P|_PGLD_ij = τ_tau(|I′| /_md M_D_repr(P))。
  • 分子動力学モデルは、ターゲットアドレスの動的解決を介して、間接ジャンプを含む複雑な制御フローも効果的にサポートする。
  • インタプリタの設計は最小限で洗練されており、明示的なポインタや動的メモリ割り当てを一切用いず、構造的変更に依存している。
  • アクション変換型サービス構成の使用により、インタプリタスレッドと分子状態サービスとの間の相互作用を正確にモデル化できる。
  • 著者らは、分子動力学が動的データ構造のモデル化に適しているだけでなく、最小限で形式的な枠組みにおいてインタプリタを実装するのにも適していると結論づける。

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

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

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

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