A systematic approach to implementing context-sensitive code completion
Project/Area Number |
16K00106
|
Research Category |
Grant-in-Aid for Scientific Research (C)
|
Allocation Type | Multi-year Fund |
Section | 一般 |
Research Field |
Software
|
Research Institution | Shibaura Institute of Technology |
Principal Investigator |
Sasano Isao 芝浦工業大学, 工学部, 准教授 (10362021)
|
Project Period (FY) |
2016-04-01 – 2020-03-31
|
Project Status |
Completed (Fiscal Year 2019)
|
Budget Amount *help |
¥2,080,000 (Direct Cost: ¥1,600,000、Indirect Cost: ¥480,000)
Fiscal Year 2018: ¥650,000 (Direct Cost: ¥500,000、Indirect Cost: ¥150,000)
Fiscal Year 2017: ¥650,000 (Direct Cost: ¥500,000、Indirect Cost: ¥150,000)
Fiscal Year 2016: ¥780,000 (Direct Cost: ¥600,000、Indirect Cost: ¥180,000)
|
Keywords | 構文補完 / LR構文解析 / derivative / コード補完 / 文脈自由文法 / 文法変換 / 文脈 / 穴 / 識別子補完 / 開発環境 / キーワード補完 / 構文解析 / 誤り回復 / コードクローン / プログラミング言語 / 型システム |
Outline of Final Research Achievements |
In this research project, we proposed an approach to implement code completion for programming on text editors. This approach targets at context-free languages. Those who implement code completion describe a grammar in BNF and transform it to a grammar for prefixes of the programs, i.e., programs up to the cursor, of the language. Based on the transformed grammar they parse programs up to the cursor and obtain (partial) parse trees. By traversing the (partial) parse trees they compute candidates to be completed at the cursor and show them to programmers. We have implemented a prototype system for a subset of Standard ML as an example and made public the system on a web page.
|
Academic Significance and Societal Importance of the Research Achievements |
広く使われているEclipse、Visual Studio等の開発環境において構文補完機能が提供されているが、形式的仕様が定められていないか、あるいは公開されていない。熟練プログラマは正確に把握できない機能の使用を避ける場合がある。また学術的には1980年代にSynthesizer GeneratorやMENTOR等、構造エディタの研究が多く行われた。近年では、構造エディタでの編集の正しさを論じた研究などもある。しかし構造エディタはプログラマが自由にプログラムテキストを編集するのを妨げる。本研究は、自由なプログラム編集を妨げることなく構文補完を行うための基本方式を提案したものである。
|
Report
(5 results)
Research Products
(5 results)