[論文レビュー] Instruction sequences with dynamically instantiated instructions
本稿では、動的にインスタンス化される命令を備えた命令列(PGLD_dii)を導入し、標準的なPGLDプログラムにマッピングする2つの翻訳ベースの意味論を提案する。主な貢献は、複雑さの異なる2つのアプローチである:一方の翻訳はプログラム長と実行ステップ数を保持するが、他方は組合せ的爆発を引き起こし、動的命令インスタンス化が強力なサービスを介して最小限のオーバーヘッドでエミュレート可能であることを示している。これにより、その機能がプログラミング言語としての有用性が裏付けられる。
We study sequential programs that are instruction sequences with dynamically instantiated instructions. We define the meaning of such programs in two different ways. In either case, we give a translation by which each program with dynamically instantiated instructions is turned into a program without them that exhibits on execution the same behaviour by interaction with some service. The complexity of the translations differ considerably, whereas the services concerned are equally simple. However, the service concerned in the case of the simpler translation is far more powerful than the service concerned in the other case.
研究の動機と目的
- 動的インスタンス化される命令を含む順序実行プログラムの形式的意味論を構築し、PGLDプログラム表記を拡張すること。
- このようなプログラムが、動作同等性を保持する前提で、標準的なPGLDプログラムに意味的に意味のある翻訳が可能かどうかを調査すること。
- 異なるサービス仮定の下で、複雑さが最小限の戦略と組合せ的爆発を示す戦略の2つの異なる翻訳戦略を比較すること。
- 動的命令インスタンス化が、従来のアセンブリ言語では存在しないものの、形式的に扱えるプログラミング機能として有用であることを示すこと。
- スレッド代数における使用メカニズムを一般化し、アクション変換を可能にすることで、プログラム実行中にサービスと相互作用できるようにすること。
提案手法
- 実行中にプログラムとサービスの相互作用をモデル化するため、一般化されたアクション変換型使用メカニズムを定義する。
- メソッド呼び出しを基本命令に変換することで、動的命令インスタンス化を可能にする状態ベースのサービスモデルを導入する。
- PGLD_diiプログラムを標準PGLDプログラムに翻訳する2つの戦略を提案する:1つ目はサービスがインスタンス化を処理する(単純な翻訳)、2つ目は翻訳されたプログラム自体がインスタンス化を実行する(複雑な翻訳)。
- 投影意味論を用いて、抽象的な数学的対象ではなく、既知の単純なプログラムを通じてプログラムの意味を定義する。
- PGLD_diiプログラム表記を、プロトインストラクションと動的インスタンス化メカニズムを備えたPGLDの拡張として形式的に定式化する。
- 生成される基本命令数の比較を通じて翻訳の複雑さを分析する:1つの翻訳は1対1のマッピングを生じるが、他方はレジスタ数Iと最大値Nに依存して組合せ的爆発を引き起こす。
実験結果
リサーチクエスチョン
- RQ1投影意味論を用い、標準PGLDプログラムへの翻訳を通じて、動的インスタンス化される命令を備えた命令列を意味的に定義可能か?
- RQ2動的命令インスタンス化のエミュレーションにおいて、翻訳の複雑さとサービスの能力のトレードオフは何か?
- RQ3プログラム長と実行ステップ数を保持しつつ、動的命令インスタンス化を正しくエミュレートできる翻訳戦略は存在するか?
- RQ4アクション変換型使用メカニズムは、元の使用メカニズムをどのように一般化し、プログラム実行中のサービス相互作用を可能にするか?
- RQ5動的命令インスタンス化が、従来のアセンブリ言語に存在しないものの、有用かつ形式的に整合性のあるプログラミング機能として示せるか?
主な発見
- 本稿では、PGLD_diiプログラムの2つの意味論をPGLDへの翻訳を通じて提示しており、一方は最小限の複雑さ、他方は組合せ的爆発を示す。
- 単純な翻訳では、各PGLD_dii命令が1つのPGLD命令にマッピングされ、プログラム長と実行ステップ数が保持される。
- より複雑な翻訳では、各プロトインストラクションが (5·N + 1)·((N+1)^I - 1)/N + 1 個の基本命令に置き換えられ、プログラムサイズが指数関数的に増加する。
- 単純な翻訳におけるサービスは、命令インスタンス化を直接処理するため、より強力である。一方、複雑な翻訳ではこの機能が内部化されている。
- 結果として、動的命令インスタンス化は、適切なサービスを用いることで最小限のオーバーヘッドでエミュレート可能であるため、実用的で有効なプログラミング機能であることが示された。
- 本研究は、投影意味論が、抽象的なプログラム行動の数学的モデルを必要とせずに、動的インスタンス化のような高度な機能を扱えるように拡張可能であることを示している。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。