2023 Fiscal Year Research-status Report
構文定義および既存のコード例を用いたテキストベースコード補完
Project/Area Number |
23K11053
|
Research Institution | Shibaura Institute of Technology |
Principal Investigator |
篠埜 功 芝浦工業大学, 工学部, 教授 (10362021)
|
Project Period (FY) |
2023-04-01 – 2026-03-31
|
Keywords | 構文補完 / LR構文解析 / 構文解析器生成系 / 文法 / 生成規則 / プログラミングツール / 順序 |
Outline of Annual Research Achievements |
2023年度は、基盤研究(C) 20K11752 「構文解析を用いたテキストベースコード補完」の助成を受けて全南大学校のKwanghoon Choi教授とともに2022年度に投稿した論文がScience of Computer Programmingという国際論文誌に採録され、2023年6月に掲載された(Volume 228)。これは国際会議ACM Partial Evaluation and Program Manipulation(PEPM 2021)で発表を行ったLR構文解析に基づく構文補完方式をもとに、Haskell、C、Small Basic、PolyRPC等の言語に適用し、simple candidate, nested candidate, extended simple candidate等、いくつかの補完候補についてそれらを計算するアルゴリズムを考案したものである。この補完方式をもとに、既存のソースコードを事前に処理し、構文解析器の各内部状態におけるactionの頻度情報を計算しておいて、それを補完時に用いる構文補完方式を考案して国際会議The 39th ACM SIGAPP Symposium on Applied Computing (SAC 2024)に投稿し、採録された。従来、エディタ上でのソースコードの編集時に用いられる補完では、識別子の補完においては候補提示順序が考慮される方式が少ないながらもあったが、構文の補完においては候補提示順序が考慮されていなかった。本研究で提案した方式は、この問題を解決するものである。この方式を実装し、合計789,023行の3,701個のSmallBasicのプログラムと合計308,599行の412個のC11のプログラムを対象に実験したところ、順位の高い補完候補は既存のソースコードと合致する場合が多く、かつ、既存のソースコード内における構文は補完候補の上位10番以内に96%以上入っていた。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
研究は順調に行われている。提示順序を考慮した補完方式を考案、実装し、良い実験結果も得られた。研究成果は国際会議SAC 2024に採録された。
|
Strategy for Future Research Activity |
現状では、補完候補は終端、非終端記号の列であり、終端記号の属性値がない状態である。これだと実際に補完を行う際に、例えば識別子はIDと表示されるだけで、ここからさらに識別子の候補を得るためには1 step余分にプログラマの手間がかかるので、プログラマにとって便利ではない状況である。今後は、2023年度の成果をもとに、近年広く使われ始めているGPT等の大規模言語モデルに対して本研究の方式で提示される補完候補をpromptとして与えることにより、識別子等のlexemeを得ることを検討している。
|
Causes of Carryover |
2023年度はプログラミング用のPCと実験データ処理用のPCを購入予定であったが、プログラミング用のPCのみ購入した。2024年度に実験用のPCを購入することを考えている。また、2024年度の助成金と合わせ、国際会議等に採録された場合に旅費、宿泊費、会議参加費等に用いることを考えている。
|