Skip to main content
QUICK REVIEW

[論文レビュー] A Syntax-Guided Edit Decoder for Neural Program Repair

Qihao Zhu, Zeyu Sun|arXiv (Cornell University)|Jun 15, 2021
Software Engineering Research被引用数 11
ひとこと要約

本論文は、ニューラルプログラム修復のための構文ガイドド編集デコーダー、\technameを提案する。このデコーダーは、完全なコード列ではなく編集を生成することで、プロバイダー/ディシダー構造と文法の整合性を保証し、プレースホルダ生成によりプロジェクト固有の識別子をサポートする。本手法は最先端の性能を達成し、Defects4J v1.2で51件のバグを修復した。これは前回のSOTAであるTBarに比べ21.4%多く、深層学習ベースのAPR手法として初めてこのベンチマークで従来手法を上回った。

ABSTRACT

Automated Program Repair (APR) helps improve the efficiency of software development and maintenance. Recent APR techniques use deep learning, particularly the encoder-decoder architecture, to generate patches. Though existing DL-based APR approaches have proposed different encoder architectures, the decoder remains to be the standard one, which generates a sequence of tokens one by one to replace the faulty statement. This decoder has multiple limitations: 1) allowing to generate syntactically incorrect programs, 2) inefficiently representing small edits, and 3) not being able to generate project-specific identifiers. In this paper, we propose Recoder, a syntax-guided edit decoder with placeholder generation. Recoder is novel in multiple aspects: 1) Recoder generates edits rather than modified code, allowing efficient representation of small edits; 2) Recoder is syntax-guided, with the novel provider/decider architecture to ensure the syntactic correctness of the patched program and accurate generation; 3) Recoder generates placeholders that could be instantiated as project-specific identifiers later. We conduct experiments to evaluate Recoder on 395 bugs from Defects4J v1.2 and 420 additional bugs from Defects4J v2.0. Our results show that Recoder repairs 53 bugs on Defects4J v1.2, which achieves 21.4% improvement over the previous state-of-the-art approach for single-hunk bugs (TBar). Importantly, to our knowledge, Recoder is the first DL-based APR approach that has outperformed the traditional APR approaches on this dataset. Furthermore, Recoder also repairs 19 bugs on the additional bugs from Defects4J v2.0, which is 137.5% more than TBar (8 bugs) and 850% more than SimFix (2 bugs). This result suggests that Recoder has better generalizability than existing APR approaches.

研究の動機と目的

  • 深層学習ベースのプログラム修復における標準的なシーケンス・ツー・シーケンスデコーダーの限界、すなわち構文的に無効なプログラムを生成し、小さな編集を非効率に表現する点を是正すること。
  • パッチを完全なコード列ではなく編集としてモデル化することで、ニューラルプログラム修復の効率性と正しさを向上させること。
  • プロジェクト固有の識別子の生成をプレースホルダのインスタンス化により可能とし、文脈的関連性を高めること。
  • 既存の深層学習ベースおよび従来のAPR手法よりも優れた一般化性能と性能を達成すること。
  • 再設計されたデコーダー・アーキテクチャが、深層学習ベースと従来のAPR技術の間の性能ギャップを埋められることを示すこと。

提案手法

  • 提案された\technameデコーダーは、完全なコード列ではなく、トークンの置換、挿入、削除などの編集を生成することで、小さな変更の効率的表現を可能にする。
  • プロバイダー/ディシダー構造を採用する:プロバイダーが候補となる編集を生成し、ディシダーが文脈自由文法を用いてターゲット言語の文法に適合するかを検証する。
  • モデルは、後処理段階でプロジェクト固有の識別子にインスタンス化されるプレースホルダ・トークンを導入し、文脈的正確性を向上させる。
  • デコーダーは、構文に配慮した損失関数を用いた、エンド・ツー・エンドのシーケンス・ツー・シーケンスフレームワークで訓練される。
  • エンコーダーは、誤った文とその周辺コンテキストを処理し、編集デコーダーをガイドする潜在表現を生成する。
  • 変更のないコード断片を保持するコピー機構を統合し、生成の複雑さを低減する。
Figure 1. The Patch for Closure-14 in Defects4J
Figure 1. The Patch for Closure-14 in Defects4J

実験結果

リサーチクエスチョン

  • RQ1標準的なシーケンス・ツー・シーケンスデコーダーと比較して、構文ガイドド編集デコーダーは、ニューラルプログラム修復における構文的整合性と効率性を向上させることができるか?
  • RQ2編集ベースの表現は、完全なコード列生成と比較して、修復効果性および一般化性能において優れているか?
  • RQ3プレースホルダ生成により、学習済みパッチにおけるプロジェクト固有の識別子の統合がより良くなるか?
  • RQ4\technameは、標準ベンチマークで深層学習ベースおよび従来のAPR手法を上回るか?
  • RQ5再設計されたデコーダー・アーキテクチャは、深層学習ベースと従来のAPRシステムの間の性能ギャップを埋められるか?

主な発見

  • \technameは、Defects4J v1.2で51件のバグを修復した。これは、前回のSOTAであるTBarに比べ21.4%(9件分)の改善であり、単一のハンクバグにおいて顕著な向上を示した。
  • 追加のDefects4J v2.0バグにおいては、19件のバグを修復した。これはTBarに比べ137.5%多く、SimFixに比べ850%も多かった。これは、優れた一般化性能を示している。
  • IntroClassJavaでは775%、QuixBugsでは30.8%の改善を達成した。これは、多様なベンチマークにわたり広範な有効性を示している。
  • 著者らの知る限り、\technameは、Defects4J v1.2ベンチマークで従来のAPR技術を上回った最初の深層学習ベースのAPR手法である。
  • 構文ガイドドのプロバイダー/ディシダー構造は、構文的に無効なパッチの生成を顕著に低減し、信頼性と学習効率を向上させた。
  • プレースホルダベースの識別子生成により、文脈に応じたパッチ適用が可能となり、実世界のプロジェクトにおける修正コードの関連性と正しさが向上した。
Figure 2. The Patch for Lang-57 in Defects4J
Figure 2. The Patch for Lang-57 in Defects4J

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。