研究課題/領域番号 |
16K00106
|
研究機関 | 芝浦工業大学 |
研究代表者 |
篠埜 功 芝浦工業大学, 工学部, 准教授 (10362021)
|
研究期間 (年度) |
2016-04-01 – 2019-03-31
|
キーワード | コード補完 / 構文補完 / LR構文解析 / 識別子補完 / 文脈 / 穴 |
研究実績の概要 |
平成29年度は、コード補完の基本的な場合として、LR構文解析に基づいて構文および識別子の補完を行う方式を考案、実装した。この成果はACM SIGPLAN 2018 Workshop on Partial Evaluation and Program Manipulation(PEPM 2018)において発表した。この研究においては、カーソル位置より前の部分は完全にプログラムが記述されているという前提を置いた。この前提のもとで、カーソル部分より後ろの部分に来うる構文の候補を提示するという問題設定とした。その際、補完候補は、構文のうち不明な部分を穴とする文脈の形とした。穴は、識別子用とterm用の2種類がある。構文補完の研究は1980年代頃にstructured editorにおいて多く行われ、エディタの機能の仕様を形式的に定めることができるなどの利点があるが、プログラムテキストの編集を文字単位で行うには不便であり、現時点でプログラミングにstructured editorを使う場合はほとんどない。そこでこの研究ではEmacs等のテキストベースのエディタ上で構文補完を行うことを目指している。これにより、形式的に仕様が定められた機能を提供し、かつ文字単位の編集を自由に行うことのできるプログラミング支援環境を実現することを目指している。文脈の穴はテキストで表示する必要があり、3つのドット...などで提示し、後でプログラマにより書き換えられる。実装はLR構文解析器であるYaccを用いて行っており、プログラムの途中までの構文およびactionをYaccの仕様ファイルにおいて手書きで記述しているが、将来的には一部を系統的に生成することを目指している。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
平成29年度は、構文補完の基本方式を考案する予定であり、これを行った。
|
今後の研究の推進方策 |
平成29年度に提案した補完方式は定式化が洗練されていないと思われ、今後、カーソル位置までのプログラムが完全である前提を置いた上で構文補完方式を整理し、補完プログラムの一部を系統的に生成することを目指す。また、現時点の方式においてはLR構文解析の内部には入っていないが、今後、LR構文解析のsentential formを使うことなどにより、より適切な補完候補を提示できる方式を考案したい。
|
次年度使用額が生じた理由 |
平成29年度の使用額が予定額を少し超過し、平成30年度に支出することになったため。使用計画にはほとんど影響はない。
|