可逆プログラミング言語の引数渡し機構の拡張
書誌事項
- タイトル別名
-
- Extended Parameter Passing Mechanisms of a Reversible Programming Language
この論文をさがす
説明
本稿では,可逆プログラミング言語Janusの引数渡し機構を拡張して,その拡張言語が可逆であることを示す.参照渡しのモデル化には,同一の参照を持つかもしれない複数の変数名が同じ記憶場所を指せるメモリモデルが必要である.これは既存のJanusで用いられていた状態モデルでは直接には扱うことができない.この問題を解決するために,我々は,環境・記憶域モデルを導入して意味論を改良した.この結果,プロシージャの実引数には,局所変数や局所配列変数だけでなく大域変数や添字付き配列変数の参照,および同一の参照を持つ複数の構文対象も渡せるようになった.拡張言語が可逆であることの保証には,環境と記憶域の更新が可逆であることの保証が必要である.これらの更新は,制限された可逆操作のみ用いて実現されることで,可逆であることが保証される.我々は,拡張言語がほかにも既存のJanusの良い性質を保っていることを示す.すなわち,任意の文やプロシージャ呼び出しの逆実行ができること,および任意の文に対して逆文が存在してそれを求めるプログラム逆変換器が構成できることを示す.さらに,我々は,プログラミング言語を可逆にするために課されていた代入の構文上の制限を緩和する.このことが原因で起こる記憶域の不正な更新は,大域のプログラム解析をしなくても,効率的に検知することができる.
The extended pass-by-reference parameter passing mechanism of reversible programming language Janus is presented and its reversibility is shown. The states used in the memory model of the existing Janus cannot directly deal with the multiple variables sharing the same memory locations. To remedy this, the state model is replaced with the environment-store model and the semantics of the language is refined. In the extended language, we can pass not only local variables and local array variables to the arguments of procedures but the references of global variables, indexed array variables and such syntactic objects that have the same references. We make the extended Janus reversible by imposing restrictions on the updates of environments and stores. The extended language also preserves several properties of Janus; any sentences and procedure calls can be inversely executed, and the inverse sentences for any sentences exist and can be constructed by simple program transformation. Furthermore, we relax the restrictions on the syntax of reversible assignments. The invalid store updates because of the extension can be efficiently detected during the execution without the necessity of global program analysis. The refined semantics is a simple extension to the existing one in the sense that the programs in the existing syntax have the same meaning under both semantics.
収録刊行物
-
- 情報処理学会論文誌プログラミング(PRO)
-
情報処理学会論文誌プログラミング(PRO) 7 (4), 21-36, 2014-08-29
情報処理学会
- Tweet
詳細情報 詳細情報について
-
- CRID
- 1050564287857987584
-
- NII論文ID
- 110009818007
-
- NII書誌ID
- AA11464814
-
- ISSN
- 18827802
-
- 本文言語コード
- ja
-
- 資料種別
- journal article
-
- データソース種別
-
- IRDB
- CiNii Articles
- KAKEN