論文の概要: A Novel Refactoring and Semantic Aware Abstract Syntax Tree Differencing Tool and a Benchmark for Evaluating the Accuracy of Diff Tools
- arxiv url: http://arxiv.org/abs/2403.05939v2
- Date: Fri, 23 Aug 2024 10:04:27 GMT
- ステータス: 処理完了
- システム内更新日: 2024-08-26 19:49:07.043774
- Title: A Novel Refactoring and Semantic Aware Abstract Syntax Tree Differencing Tool and a Benchmark for Evaluating the Accuracy of Diff Tools
- Title(参考訳): 新しいリファクタリングと意味認識型抽象構文木辞書ツールとディフツールの精度評価のためのベンチマーク
- Authors: Pouria Alikhanifard, Nikolaos Tsantalis,
- Abstract要約: Syntax Tree (AST) diffツールは、ほとんどの開発者が使っている行ベースのdiffツールの制限を克服するために開発された。
上記の制限をすべて解決するRefactoringMinerに基づく新しいAST diffツールを提案する。
当社のツールは,特にコミットにおいて,非互換性ツールに匹敵する実行時間で,大幅な精度の向上とリコールを実現しています。
- 参考スコア(独自算出の注目度): 2.0625936401496237
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Software undergoes constant changes to support new requirements, address bugs, enhance performance, and ensure maintainability. Thus, developers spend a great portion of their workday trying to understand and review the code changes of their teammates. Abstract Syntax Tree (AST) diff tools were developed to overcome the limitations of line-based diff tools, which are used by the majority of developers. Despite the notable improvements brought by AST diff tools in understanding complex changes, they still suffer from serious limitations, such as (1) lacking multi-mapping support, (2) matching semantically incompatible AST nodes, (3) ignoring language clues to guide the matching process, (4) lacking refactoring awareness, and (5) lacking commit-level diff support. We propose a novel AST diff tool based on RefactoringMiner that resolves all aforementioned limitations. First, we improved RefactoringMiner to increase its statement mapping accuracy, and then we developed an algorithm that generates AST diff for a given commit or pull request based on the refactoring instances and pairs of matched program element declarations provided by RefactoringMiner. To evaluate the accuracy of our tool and compare it with the state-of-the-art tools, we created the first benchmark of AST node mappings, including 800 bug-fixing commits and 188 refactoring commits. Our evaluation showed that our tool achieved a considerably higher precision and recall, especially for refactoring commits, with an execution time that is comparable with that of the faster tools.
- Abstract(参考訳): ソフトウェアは新しい要件をサポートし、バグに対処し、パフォーマンスを向上し、メンテナンス性を確保するために、常に変更を行う。
このように、開発者は仕事のほとんどをチームメイトのコード変更を理解し、レビューするために費やします。
抽象構文木(AST)diffツールは、ほとんどの開発者が使っている行ベースのdiffツールの制限を克服するために開発された。
複雑な変更を理解するためのAST diffツールによる顕著な改善にもかかわらず、(1)マルチマッピングサポートの欠如、(2)セマンティックに互換性のないASTノードのマッチング、(3)マッチングプロセスをガイドする言語ヒントの無視、(4)リファクタリングの意識の欠如、(5)コミットレベルのdiffサポートの欠如など、深刻な制限に悩まされている。
上記の制限をすべて解決するRefactoringMinerに基づく新しいAST diffツールを提案する。
まず、RefactoringMinerを改善して、ステートメントマッピングの精度を向上させるとともに、RefactoringMinerが提供するリファクタリングインスタンスとマッチしたプログラム要素のペアに基づいて、所定のコミットやプルリクエストに対してAST diffを生成するアルゴリズムを開発しました。
ツールの精度を評価し、最先端のツールと比較するため、800のバグ修正コミットと188のリファクタリングコミットを含むASTノードマッピングの最初のベンチマークを作成しました。
評価の結果,我々のツールは,特にコミットのリファクタリングにおいて,より高速なツールに匹敵する実行時間で,大幅な精度の向上とリコールを実現していることがわかった。
関連論文リスト
- Semistructured Merge with Language-Specific Syntactic Separators [1.0999592665107416]
言語固有の構文分離器を用いて解析せずに構造を推論するツールを提案する。
我々のツールは、実際に広く使われている非構造化ツールよりも大幅に改善されている。
論文 参考訳(メタデータ) (2024-07-26T17:40:29Z) - Automatic Build Repair for Test Cases using Incompatible Java Versions [7.4881561767138365]
依存性の最小化を行うことで、Javaプロジェクトのテストケースを修復するアプローチを導入します。
既存の最先端技術とは異なり、我々の手法はソースレベルで動作し、コンパイル時のエラーを修正できる。
論文 参考訳(メタデータ) (2024-04-27T07:55:52Z) - Contrastive Instruction Tuning [61.97704869248903]
意味論的に等価な命令-インスタンスペア間の類似性を最大化するために、コントラスト命令チューニングを提案する。
PromptBenchベンチマークの実験によると、CoINはLLMの頑健さを一貫して改善し、文字、単語、文、意味のレベルを平均して2.5%の精度で変化させる。
論文 参考訳(メタデータ) (2024-02-17T00:09:32Z) - ControlLLM: Augment Language Models with Tools by Searching on Graphs [97.62758830255002]
我々は,大規模言語モデル(LLM)が実世界のタスクを解くためのマルチモーダルツールを利用できる新しいフレームワークであるControlLLMを提案する。
フレームワークは,(1)複雑なタスクを明確なサブタスクに分割し,入力と出力を適切に定義したサブタスクに分解するtextittask Decomposer,(2)構築済みのツールグラフ上で最適なソリューションパスを探索する textitThoughts-on-Graph(ToG)パラダイム,(3)ソリューションパスを解釈して実行するリッチなツールボックスを備えた textitexecution Engine,の3つの主要なコンポーネントから構成される。
論文 参考訳(メタデータ) (2023-10-26T21:57:21Z) - RAP-Gen: Retrieval-Augmented Patch Generation with CodeT5 for Automatic
Program Repair [75.40584530380589]
新たな検索型パッチ生成フレームワーク(RAP-Gen)を提案する。
RAP-Gen 以前のバグ修正ペアのリストから取得した関連する修正パターンを明示的に活用する。
RAP-GenをJavaScriptのTFixベンチマークとJavaのCode RefinementとDefects4Jベンチマークの2つのプログラミング言語で評価する。
論文 参考訳(メタデータ) (2023-09-12T08:52:56Z) - Do code refactorings influence the merge effort? [80.1936417993664]
複数のコントリビュータがソースコードを並行して変更して,新機能の実装やバグの修正,既存のコードの変更などを行っている。
これらの同時変更は、ソースコードの同じバージョンにマージする必要がある。
研究によると、すべてのマージの試みの10~20%が衝突を起こしており、これはプロセスを完了するために手動開発者の介入を必要とする。
論文 参考訳(メタデータ) (2023-05-10T13:24:59Z) - ART: Automatic multi-step reasoning and tool-use for large language
models [105.57550426609396]
大規模言語モデル(LLM)は、数秒とゼロショットの設定で複雑な推論を行うことができる。
各推論ステップは、コアLLM機能を超えて計算をサポートする外部ツールに依存することができる。
プログラムとして中間推論ステップを自動生成するために凍結LDMを使用するフレームワークであるART(Automatic Reasoning and Tool-use)を導入する。
論文 参考訳(メタデータ) (2023-03-16T01:04:45Z) - Accelerating DETR Convergence via Semantic-Aligned Matching [50.3633635846255]
本稿では,DTRの精度を犠牲にすることなく,DTRの収束を大幅に加速するセマンティック整合DTRであるSAM-DETRを提案する。
意味整合性マッチングにおいて最も識別性の高い特徴を持つ有能な点を明示的に検索し、収束をさらに高速化し、検出精度も向上する。
論文 参考訳(メタデータ) (2022-03-14T06:50:51Z) - Generating Bug-Fixes Using Pretrained Transformers [11.012132897417592]
実世界のgithubからマイニングしたjavaメソッドのバグの検出と修正を学ぶ,データ駆動型プログラム修復手法を導入する。
ソースコードプログラムの事前トレーニングは,スクラッチからの教師ありトレーニングに比べて,33%のパッチ数を改善することを示す。
我々は,標準精度評価基準を非削除および削除のみの修正に洗練し,我々の最良モデルが従来よりも75%多くの非削除修正を生成することを示す。
論文 参考訳(メタデータ) (2021-04-16T05:27:04Z) - How We Refactor and How We Document it? On the Use of Supervised Machine
Learning Algorithms to Classify Refactoring Documentation [25.626914797750487]
リファクタリングは、外部の振る舞いを変えることなく、システムの設計を改善する技術である。
この研究はコミットを、従来のBugFixやFunctionalのカテゴリとともに、内部QA、外部QA、Code Smell Resolutionの3つのカテゴリに分類する。
分類結果をよりよく理解するために、私たちはコミットメッセージを分析して、開発者が定期的に臭いを説明するために使用するパターンを抽出しました。
論文 参考訳(メタデータ) (2020-10-26T20:33:17Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。