研究課題/領域番号 |
17K00114
|
研究機関 | 南山大学 |
研究代表者 |
吉田 敦 南山大学, 国際教養学部, 教授 (50283495)
|
研究分担者 |
蜂巣 吉成 南山大学, 理工学部, 教授 (30319298)
|
研究期間 (年度) |
2017-04-01 – 2020-03-31
|
キーワード | プログラム理解 / プログラムの例外処理 / プログラムのダイジェスト化 / 構文解析 / C言語 / PHP |
研究実績の概要 |
本研究は、Webアプリケーションを対象としたプログラム解析技術を用いて理解支援をすることであるので、まず、PHP の構文解析器を実現した。実装にあたっては、これまでC言語用に作成したものを応用し、ボトムアップに小さな構文要素から大きな構文要素から識別することで、PHP のコード片から構文木を生成できるようにした。PHPは、HTML タグと混在して記述されるが、そのようなコードにも対応している。また、これまでは、構文木を字句系列で表現する方法を用いていた。これは、プログラムの書き換えにパターン変換を実現するときに、文字列の正規表現の置換を応用できるからである。ただし、部分評価を実現していくためには、より直接的に木構造を表現するデータ構造の方が望ましい。部分評価器は、部分的な機能を持つプロトタイプも実現済みではあるが、字句系列をベースとしたために拡張が難しい状況になっている。そこで、C言語の構文解析器と合わせて、統一的にJSON形式の木を生成できるような機能拡張を行なった。C言語については実用的なオープンソースに対応できる性能になっている。PHPについては作業が進行中である。 また、理解支援の基礎技術として、字句の共通性に着目して例外処理を選別する方法に取り組んだ。プログラムを理解するときに、注目すべきは標準的な正常ユースケースに沿って実行される命令であり、例外処理は理解の対象から外れる。例外処理を一律に取り除くことができれば、理解が容易になる。主にC言語のオープンソースを対象に実験を行なって、例外処理を高い精度で選別できることを確認した。JSON形式に変換した構文木を対象に実験していることから、PHP への移植も容易になっている。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
本年度の歳々の目標としては、PHP の構文解析を実現することであり、そのこと自体は実現されている。ただし、今後の開発を効率化するために、新たに JSON 形式への変換といった機能拡張を行なっており、その拡張が完成していないという点で、やや急ぐ必要がある。
|
今後の研究の推進方策 |
当面は、PHP の構文解析器(JSON版)の完成と、それに基づく部分評価器の構築が主な課題となる。また、新たに、字句の共通性に基づくことで、例外処理を始めとして、プログラム理解において必ずしも必要ない要素を取り除くことができる可能性があることから、そちらの研究についても進めていく。また、あらかじめデフォルトの定数が定義されている場合には、部分評価を適用することで、取り除ける要素が増やせると考えており、その点についても検討を進めていく。
|
次年度使用額が生じた理由 |
大学の業務や授業との関係で、当初の予定していた学会の研究会等への資料採取に行くことができなかった。ただし、プログラムの解析ツールの実現や実験において、大学院生に協力をしてもらう予定があり、差額については実験用の機器の購入や学会発表に割り当てていく。
|