Project/Area Number |
19K20248
|
Research Category |
Grant-in-Aid for Early-Career Scientists
|
Allocation Type | Multi-year Fund |
Review Section |
Basic Section 60050:Software-related
|
Research Institution | National Institute of Informatics |
Principal Investigator |
Tsushima Kanae 国立情報学研究所, 情報学プリンシプル研究系, 特任研究員 (80754663)
|
Project Period (FY) |
2019-04-01 – 2024-03-31
|
Project Status |
Completed (Fiscal Year 2023)
|
Budget Amount *help |
¥3,510,000 (Direct Cost: ¥2,700,000、Indirect Cost: ¥810,000)
Fiscal Year 2021: ¥1,040,000 (Direct Cost: ¥800,000、Indirect Cost: ¥240,000)
Fiscal Year 2020: ¥1,040,000 (Direct Cost: ¥800,000、Indirect Cost: ¥240,000)
Fiscal Year 2019: ¥1,430,000 (Direct Cost: ¥1,100,000、Indirect Cost: ¥330,000)
|
Keywords | 関数型言語 / プログラミング言語 / デバッギング / 型エラー / 大規模言語モデル / デバッグ |
Outline of Research at the Start |
多くのものがプログラムで動く現代において、プログラムの安全性は重要な課題である。プログラムの安全性を高める方法の一つとして「型」が存在するが、型の「不整合」を持たないプログラムを書くことは容易ではない。本研究では、プログラマが型の不整合を持たないプログラムを書くことを容易にできるよう支援することを目的としている。具体的には、データに基づく修正を可能にすることと、プログラマの負担を軽減するために自動での修正を可能にすることを目指している。
|
Outline of Final Research Achievements |
Two main results were obtained in this study. The first is type error debugging using GPT-3. Specifically, it performs a source code analysis task on a program with type errors to generate useful prompts. Provide it to GPT-3 to generate a patch to correct the type error. We created three different modes and validated on the existing public dataset of OCaml. In comparison, it outperformed two other OCaml-based studies of automatic correction. The second is a method that uses partial evaluation to perform and present the location of type errors in an easy-to-understand manner. We implemented a prototype and verified its effectiveness on the aforementioned programs on the existing public datasets.
|
Academic Significance and Societal Importance of the Research Achievements |
型はプログラムの信頼性を高めるために重要である一方で、プログラミング時の型エラーはプログラマにとって手間である。そのデバッグを容易にすることは、プログラマの実際の生産性、およびプログラムの信頼度を高めるために重要である。また、本研究では大規模言語モデルのプログラミング言語に対する深い理解を活用することで、プログラマのデバッグを手助けすることが可能であることを示した。これはこれからのプログラミングをサポートしていく上で重要な成果である。
|