論文の概要: LLM-Based Repair of Static Nullability Errors
- arxiv url: http://arxiv.org/abs/2507.20674v1
- Date: Mon, 28 Jul 2025 09:55:04 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-07-29 16:23:58.072392
- Title: LLM-Based Repair of Static Nullability Errors
- Title(参考訳): LLMによる静的Nullabilityエラーの修復
- Authors: Nima Karimipour, Michael Pradel, Martin Kellogg, Manu Sridharan,
- Abstract要約: 我々は、nullability Checkerからnullabilityエラーを解決するための構造化ワークフローにLLMを統合するシステムであるNullRepairを提案する。
NullRepairは、最先端のアノテーション推論技術を適用した後に残るエラーの平均72%を解決している。
NullRepair は、ナリープロップされた LLM とは異なり、プログラムのセマンティクスもほとんど保存している。
- 参考スコア(独自算出の注目度): 14.857404348789201
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Modern Java projects increasingly adopt static analysis tools that prevent null-pointer exceptions by treating nullness as a type property. However, integrating such tools into large, existing codebases remains a significant challenge. While annotation inference can eliminate many errors automatically, a subset of residual errors -- typically a mix of real bugs and false positives -- often persist and can only be resolved via code changes. Manually addressing these errors is tedious and error-prone. Large language models (LLMs) offer a promising path toward automating these repairs, but naively-prompted LLMs often generate incorrect, contextually-inappropriate edits. Resolving a nullability error demands a deep understanding of how a symbol is used across the codebase, often spanning methods, classes, and packages. We present NullRepair, a system that integrates LLMs into a structured workflow for resolving the errors from a nullability checker. NullRepair's decision process follows a flowchart derived from manual analysis of 200 real-world errors. It leverages static analysis to identify safe and unsafe usage regions of symbols, using error-free usage examples to contextualize model prompts. Patches are generated through an iterative interaction with the LLM that incorporates project-wide context and decision logic. Our evaluation on 12 real-world Java projects shows that NullRepair resolves an average of 72% of the errors that remain after applying a state-of-the-art annotation inference technique. Unlike a naively-prompted LLM, NullRepair also largely preserves program semantics, with all unit tests passing in 10/12 projects after applying every edit proposed by NullRepair, and 98% or more tests passing in the remaining two projects.
- Abstract(参考訳): 最新のJavaプロジェクトは、nullnessを型プロパティとして扱うことでnull-pointer例外を防止する静的解析ツールをますます採用している。
しかし、そのようなツールを大規模な既存のコードベースに統合することは、依然として大きな課題である。
アノテーション推論は自動的に多くのエラーを排除できるが、残留するエラーのサブセット(通常、実際のバグと偽陽性の混合)は、しばしば持続し、コードの変更によってのみ解決される。
これらのエラーに手動で対処するのは面倒で、エラーを起こしやすい。
大規模な言語モデル(LLM)は、これらの修復を自動化するための有望な経路を提供するが、鼻のプロンプトによって、しばしば不正確で文脈的に不適切な編集を生成する。
null許容エラーを解決するには、しばしばメソッド、クラス、パッケージにまたがるコードベースでシンボルがどのように使用されるか、深く理解する必要がある。
我々は、nullability Checkerからエラーを解決するための構造化ワークフローにLLMを統合するシステムであるNullRepairを提案する。
NullRepairの決定プロセスは、200の現実世界のエラーを手動で解析したフローチャートに従っている。
静的解析を利用してシンボルの安全で安全でない使用領域を特定し、エラーのない使用例を使ってモデルプロンプトのコンテキスト化を行う。
パッチは、プロジェクト全体のコンテキストと決定ロジックを含むLCMとの反復的な相互作用によって生成される。
12の実世界のJavaプロジェクトに対する評価は、NullRepairが、最先端のアノテーション推論技術を適用した後に残るエラーの平均72%を解決していることを示している。
NullRepairが提案したすべての編集を適用した後、すべてのユニットテストが10/12プロジェクトを通過し、残りの2つのプロジェクトで98%以上のテストがパスする。
関連論文リスト
- Repairing vulnerabilities without invisible hands. A differentiated replication study on LLMs [5.10123605644148]
自動脆弱性修復(AVR: Automated Vulnerability repair)は、プログラム修復の急激な分岐である。
近年の研究では、大きな言語モデル(LLM)が従来の手法より優れていることが示されている。
論文 参考訳(メタデータ) (2025-07-28T16:39:16Z) - Do AI models help produce verified bug fixes? [62.985237003585674]
大規模言語モデルは、ソフトウェアバグの修正に使用される。
本稿では,プログラマが大規模言語モデルを用いて,自身のスキルを補完する方法について検討する。
その結果は、プログラムバグに対する保証された修正を提供するAIとLLMの適切な役割への第一歩となる。
論文 参考訳(メタデータ) (2025-07-21T17:30:16Z) - Specification-Guided Repair of Arithmetic Errors in Dafny Programs using LLMs [84.30534714651093]
本稿では,検証を意識したプログラミング言語であるDafnyに対して,革新的なAPRツールを提案する。
プログラム内の各ステートメントの状態を決定するために、Hoare Logicの使用を含む一連のステップを通じて、障害をローカライズします。
実世界のDafnyプログラムのベンチマークであるDafnyBenchを用いて,我々のアプローチを評価する。
論文 参考訳(メタデータ) (2025-07-04T15:36:12Z) - Subtle Errors in Reasoning: Preference Learning via Error-injected Self-editing [59.405145971637204]
eRror-Injected Self-Editing (RISE) と呼ばれる新しい好み学習フレームワークを提案する。
RISEは、事前定義された微妙なエラーをピボットトークンに注入する。
RISEの有効性を検証する実験では、Qwen2-7B-Instructでの優先学習により、GSM8Kでは3.0%、MATHでは7.9%が顕著に改善され、トレーニングサンプルは4.5Kに留まった。
論文 参考訳(メタデータ) (2024-10-09T07:43:38Z) - Aligning the Objective of LLM-based Program Repair [14.935596175148586]
本稿では,大規模言語モデル (LLM) をプログラム修復に適用するための新しいアプローチについて検討する。
我々の中核的な洞察は、LLMのAPR能力は、単にトレーニング目標に出力を合わせるだけで大幅に改善できるということです。
この知見に基づいて、我々はAPRの直接的なプロンプトフレームワークであるD4Cを設計した。
論文 参考訳(メタデータ) (2024-04-13T02:36:40Z) - GenAudit: Fixing Factual Errors in Language Model Outputs with Evidence [64.95492752484171]
GenAudit - 文書基底タスクの事実チェック LLM 応答を支援するためのツール。
GenAuditは、レファレンス文書でサポートされていないクレームを修正したり削除したりすることでLCMレスポンスを編集することを提案し、また、サポートしているように見える事実の参照から証拠を提示する。
GenAuditは、さまざまなドメインから文書を要約する際に、8つの異なるLCM出力でエラーを検出することができる。
論文 参考訳(メタデータ) (2024-02-19T21:45:55Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。