Closed e4exp closed 3 years ago
ここでは、診断フィードバック(コンパイラのエラーメッセージなど)からプログラムを修復することを学習する問題を考える。 プログラムの修復には2つの理由がある。 第一に、ソースコードと診断フィードバックの間でシンボルを推論し追跡する必要がある。 第二に、プログラム修復に利用できるラベル付きデータセットは比較的少ない。 本研究では、これら2つの課題に対する新しい解決策を提案する。 第一に、ソースコードと診断フィードバックに含まれるプログラム修復に関連するシンボルを結びつけるプログラムフィードバックグラフを導入し、その上にグラフニューラルネットワークを適用して推論プロセスをモデル化する。 次に、プログラム修復のための自己教師付き学習パラダイムを提示する。 これは、オンラインで入手可能なラベルのないプログラムを活用して、大量のプログラム修復例を作成し、モデルの事前学習に使用するものである。 我々の提案するアプローチを、プログラミング入門の課題の修正(DeepFixデータセット)と、プログラム合成の出力の修正(SPoCデータセット)という2つのアプリケーションで評価する。 最終的なシステムであるDrRepairは、DeepFixで68.2%の完全修復率(過去のベストと比較して22.9%増)、SPoCで48.4%の合成成功率(過去のベストと比較して3.7%増)を達成し、先行研究を大幅に上回る結果となった。
duplicated
ここでは、診断フィードバック(コンパイラのエラーメッセージなど)からプログラムを修復することを学習する問題を考える。 プログラムの修復には2つの理由がある。 第一に、ソースコードと診断フィードバックの間でシンボルを推論し追跡する必要がある。 第二に、プログラム修復に利用できるラベル付きデータセットは比較的少ない。 本研究では、これら2つの課題に対する新しい解決策を提案する。 第一に、ソースコードと診断フィードバックに含まれるプログラム修復に関連するシンボルを結びつけるプログラムフィードバックグラフを導入し、その上にグラフニューラルネットワークを適用して推論プロセスをモデル化する。 次に、プログラム修復のための自己教師付き学習パラダイムを提示する。 これは、オンラインで入手可能なラベルのないプログラムを活用して、大量のプログラム修復例を作成し、モデルの事前学習に使用するものである。 我々の提案するアプローチを、プログラミング入門の課題の修正(DeepFixデータセット)と、プログラム合成の出力の修正(SPoCデータセット)という2つのアプリケーションで評価する。 最終的なシステムであるDrRepairは、DeepFixで68.2%の完全修復率(過去のベストと比較して22.9%増)、SPoCで48.4%の合成成功率(過去のベストと比較して3.7%増)を達成し、先行研究を大幅に上回る結果となった。