2012 Fiscal Year Annual Research Report
観点に基づくプログラム分解と合成による編集支援方法
Project/Area Number |
22500036
|
Research Institution | Nanzan University |
Principal Investigator |
吉田 敦 南山大学, 情報理工学部, 教授 (50283495)
|
Co-Investigator(Kenkyū-buntansha) |
蜂巣 吉成 南山大学, 情報理工学部, 准教授 (30319298)
|
Project Period (FY) |
2010-04-01 – 2013-03-31
|
Keywords | プログラム書換え / 前処理指令 / コメントの維持 / プログラムパターン / 字句系列 / 抽象構文木 |
Research Abstract |
この研究で取り扱う観点を、(1)C言語本来の構文木、(2)前処理命令、(3)コメントとスペースの3つに分け、各観点でのプログラムの書換えおよびそれに伴う制約の取扱いについての検討を行なった。 (1)C言語本来の構文木については、すでに昨年度までにパターン変換系を実現しているが、木構造としての観点とテキストとしての観点で操作を記述することが必要であり、後者について文字列の正規表現も適用できるように拡張を行なった。 (2)前処理命令については、条件付きコンパイルに用いる分岐指令が存在するプログラムに対して書換えを行う方法について検討をした。あらゆる分岐経路を網羅したテキストに分離し、書換えたあとに合成する方法は、組み合わせ爆発が起こることに加え、合成時の処理が難しく、条件分岐指令を適切に戻せないことがわかった。そこで、一般に、パターンマッチの適合範囲が狭いこと、また、条件分岐指令で分けられる範囲も狭いことから、パターンマッチの判定時に各分岐をそれぞれ探索し、いずれかの経路で適合した時点で、その経路に含まれる分岐を適合範囲の外へ移動する等価変換を行い、書換え後に逆の変換を行うことで、書換えを実現した。 (3)プログラムの書換え後に、元のプログラムに含まれたコメントとスペースが適切に残るよう、パターン変換系を拡張した。コメントとスペースは、その出現位置から近い字句に付随するというモデルを作り、そのモデルに従ってパターンを補正するフィルタを作成した。このフィルタは、構文木に対する書換え操作とは独立に定義され、あらゆる書換えに対して同時に適用できることを確認した。 これらの3つの観点での実現方法は、それぞれが独立しており、同時に適用が可能である。したがって、観点を分離し、書換えを適用していくというこの研究の目的は概ね達成できたと考えらえる。
|
Current Status of Research Progress |
Reason
24年度が最終年度であるため、記入しない。
|
Strategy for Future Research Activity |
24年度が最終年度であるため、記入しない。
|