2016 Fiscal Year Research-status Report
文脈を考慮したコード補完の実装の系統的導出に関する研究
Project/Area Number |
16K00106
|
Research Institution | Shibaura Institute of Technology |
Principal Investigator |
篠埜 功 芝浦工業大学, 工学部, 准教授 (10362021)
|
Project Period (FY) |
2016-04-01 – 2019-03-31
|
Keywords | 開発環境 / キーワード補完 / 構文解析 / 誤り回復 / コードクローン |
Outline of Annual Research Achievements |
平成28年度は、コード補完の単純な場合として、構文に関する文脈を考慮したキーワードの補完をyaccの誤り回復機能に基づいて行うことを試みた。入力中の構文が不完全なソースコードに対応するため、YaccによるLR構文解析の誤り回復機能を用いることとし、キーワード補完機能の実装を仕様から系統的に導出する手法を考案し実装した。この成果は情報処理学会第109回プログラミング研究発表会において発表した。本手法においては、カーソル位置の(入力途中の)キーワードの字句を識別するため、入力途中であることを示す字句を字句解析および構文解析の仕様記述に追加する。構文解析を行うので、補完候補計算において構文に関する文脈が考慮される。実装の導出はByaccという構文解析器生成系のソースコードを用いて行った。Yaccの構文規則記述およびユーザが指定した補完対象キーワードを入力とし、構文規則記述への字句errorの機械的挿入により補完候補計算プログラムの自動生成を行うツールを作成した。例として、C言語のYaccの仕様記述ファイルを入力とし、C言語のキーワードの補完を行うプログラムを生成した。補完対象キーワードは自動生成ツールの使用者が指定できる。また、コード補完等の様々な機能を持つプログラム開発システムにおけるソースコードのリファクタリング機能に関し、関数型言語Standard MLを対象に関数適用がギャップとなっているクローンを検出する新たな手法を提案し実装した。この成果はACM SIGPLAN 2017 Workshop on Partial Evaluation and Program Manipulation (PEPM 2017) において発表した。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
平成28年度の計画としては、単純な例として、Standard MLの核となる部分に対し、構文に関する文脈を考慮したキーワード補完方式を開発する予定であったが、例をC言語としてこれを実施した。
|
Strategy for Future Research Activity |
平成28年度に考案したキーワード補完方式は、Yaccの構文記述への字句errorの入れ方が単純であり、生成される補完システムは仕様が明確ではあるが、プログラマが望む補完にならない場合がある。また、Yaccの代わりにANTLRなどの他の構文解析器生成系を用いることも検討する。補完対象をキーワードから識別子や式などに拡張する。
|
Causes of Carryover |
平成28年度の使用額が603,362円となり、600,000円を少し超過したため、平成29年度に合わせて支出することとなったため。
|
Expenditure Plan for Carryover Budget |
額が3,362円であり、当初の計画から変更はほぼない。
|
Research Products
(2 results)