論文の概要: Prefactory: Automated Discovery and Application of Library-Adoption Refactorings
- arxiv url: http://arxiv.org/abs/2607.17211v1
- Date: Sun, 19 Jul 2026 12:01:47 GMT
- ステータス: 翻訳完了
- システム内更新日: 2026-07-21 18:48:37.393628
- Title: Prefactory: Automated Discovery and Application of Library-Adoption Refactorings
- Title(参考訳): Prefactory: ライブラリ適応リファクタリングの自動発見と適用
- Authors: Islem Bouzenia, Michael Pradel,
- Abstract要約: 手書きのコードをライブラリAPIコールに置き換えることで、コードのサイズを減らし、コードを慣用的にし、十分にテストされた実装を再利用できる。
linterや静的モダナイザといった既存のツールでは、手動で指定した小さなパターンのみをカバーしている。
本稿では,Pythonにおけるライブラリ適応の自動アプローチであるPrefactoryを紹介する。
- 参考スコア(独自算出の注目度): 17.975121612118752
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Replacing hand-written code with library API calls is a common refactoring that can reduce code size, make code more idiomatic, and reuse well-tested implementations. Yet many library-adoption opportunities are hard to find automatically: the original code often does not mention the target library and may resemble the library API only in behavior, with little syntactic overlap. Existing tools, such as linters and static modernizers, cover only a small set of manually specified patterns. LLMs and LLM-based agents, on the other hand, can generalize to more patterns, but they are costly, difficult to reproduce and to apply systematically at scale. This paper introduces Prefactory, an automated approach for library-adoption refactoring in Python. The key idea is to use an LLM to synthesize executable search heuristics rather than relying on repeated LLM prompting over a codebase. Given a target project and a target library name, Prefactory collects library metadata and project vocabulary, then generates lexical and structural detectors. Prefactory executes the detectors during a scan phase to find candidate functions. It then heuristically ranks the candidate functions, generates refactorings for the highest-ranked ones using an LLM, and validates the results with project tests and newly generated differential tests. We evaluate Prefactory on PrefactoryBench, a benchmark of 100 real-world library-adoption refactorings from 61 open-source Python projects and 18 libraries. Prefactory detects 75 instances at the file level and 56 at the function level, compared with 35 and 32 for the strongest baseline (Codex CLI). From the 56 detected functions, Prefactory produces 40 test-validated refactorings.
- Abstract(参考訳): ライブラリAPIコールで手書きのコードをリプレースすることは、コードのサイズを減らし、コードを慣用的にし、十分にテストされた実装を再利用する、一般的なリファクタリングである。
オリジナルのコードはターゲットライブラリに言及せず、動作のみのライブラリAPIに似ていて、構文上の重複がほとんどありません。
linterや静的モダナイザといった既存のツールでは、手動で指定した小さなパターンのみをカバーしている。
LLMとLLMをベースとしたエージェントは、より多くのパターンに一般化することができるが、コストがかかり、再現が困難であり、大規模に体系的に適用することができる。
本稿では,Pythonにおけるライブラリ適応リファクタリングの自動化アプローチであるPrefactoryを紹介する。
鍵となる考え方は、LLMを使用して、コードベース上で反復的なLLMのプロンプトに頼るのではなく、実行可能な検索ヒューリスティックを合成することである。
対象のプロジェクトと対象のライブラリ名を与えられたPrefactoryは、ライブラリメタデータとプロジェクト語彙を収集し、語彙的および構造的検出器を生成する。
Prefactoryはスキャンフェーズ中に検出器を実行し、候補関数を見つける。
その後、候補関数をヒューリスティックにランク付けし、LSMを使って上位関数のリファクタリングを生成し、プロジェクトテストと新しく生成された差分テストで結果を検証する。
Prefactory on PrefactoryBench, a benchmark of 100 real-world library-adoption refactorings from 61 open-source Python project and 18 library。
Prefactoryはファイルレベルで75のインスタンス、関数レベルで56のインスタンスを検出し、最強のベースライン(Codex CLI)では35と32である。
56の検出された機能から、Prefactoryは40のテスト検証リファクタリングを生成する。
関連論文リスト
- Refactoring Codebases through Library Design [21.039476331720312]
成長と再利用性をサポートする方法でコードに対するコードエージェントの能力を調べる。
本稿では,再利用可能なライブラリを生成するためのベンチマークと手法を提案する。
我々は,ライブラリと最先端のライブラリ生成手法を比較し,それを実世界のコードベースで研究する。
論文 参考訳(メタデータ) (2025-05-26T07:26:33Z) - A Library of LLM Intrinsics for Retrieval-Augmented Generation [23.943062719367816]
本稿は、各内在的用法、訓練の詳細、評価、および複数の内在的用法の構成について述べる。
内在性(英: intrinsic)とは、LLM内在性自体の実装方法とは独立して、適切に定義されたAPIを通じて呼び出すことができる機能である。
我々のライブラリは,HuggingFace上のLoRAアダプタとしてリリースされ,推論プラットフォームとしてvLLM上に,明確な構造化された入出力特性を持つソフトウェアインターフェースを通じてリリースされた。
論文 参考訳(メタデータ) (2025-04-16T02:02:22Z) - When LLMs Meet API Documentation: Can Retrieval Augmentation Aid Code Generation Just as It Helps Developers? [10.204379646375182]
Retrieval-augmented Generation (RAG) は、学習前の知識を超えて、大規模言語モデルの能力(LLM)を拡大する能力を示している。
検索と生成のための新たな知識として,あまり一般的でないAPIライブラリのドキュメンテーションを使用することの有効性に影響を与える要因について検討する。
論文 参考訳(メタデータ) (2025-03-19T14:08:47Z) - Commit0: Library Generation from Scratch [77.38414688148006]
Commit0は、AIエージェントにスクラッチからライブラリを書くよう促すベンチマークである。
エージェントには、ライブラリのAPIを概説する仕様文書と、インタラクティブなユニットテストスイートが提供されている。
Commit0はまた、モデルが生成したコードに対して静的解析と実行フィードバックを受け取る、インタラクティブな環境も提供する。
論文 参考訳(メタデータ) (2024-12-02T18:11:30Z) - Enhancing Differential Testing With LLMs For Testing Deep Learning Libraries [8.779035160734523]
本稿では,DLライブラリのためのLLM強化差分試験手法を提案する。
与えられたAPIの代替実装を見つけ、多様なテストインプットを生成するという課題に対処する。
最先端技術で見られるAPIの1.84倍の数のAPIを合成する。
論文 参考訳(メタデータ) (2024-06-12T07:06:38Z) - ML-Bench: Evaluating Large Language Models and Agents for Machine Learning Tasks on Repository-Level Code [76.84199699772903]
ML-Benchは、既存のコードリポジトリを利用してタスクを実行する現実世界のプログラミングアプリケーションに根ざしたベンチマークである。
LLM(Large Language Model)とAIエージェントの両方を評価するために、事前に定義されたデプロイメント環境でLLMのテキスト-コード変換を評価するML-LLM-Benchと、Linuxサンドボックス環境でエンドツーエンドのタスク実行で自律エージェントをテストするML-Agent-Benchの2つの設定が採用されている。
論文 参考訳(メタデータ) (2023-11-16T12:03:21Z) - LILO: Learning Interpretable Libraries by Compressing and Documenting Code [71.55208585024198]
LILOは、反復的に合成、圧縮、文書化を行う、ニューロシンボリックなフレームワークである。
LILOは、LLM誘導プログラム合成と、Stitchから自動化された最近のアルゴリズムの進歩を組み合わせたものである。
LILOのシンセサイザーが学習した抽象化を解釈し、デプロイするのを手助けすることで、AutoDocがパフォーマンスを向上させることが分かりました。
論文 参考訳(メタデータ) (2023-10-30T17:55:02Z) - Private-Library-Oriented Code Generation with Large Language Models [52.73999698194344]
本稿では,大規模言語モデル(LLM)をプライベートライブラリのコード生成に活用することに焦点を当てる。
プログラマがプライベートコードを書く過程をエミュレートする新しいフレームワークを提案する。
TorchDataEval、TorchDataComplexEval、MonkeyEval、BeatNumEvalの4つのプライベートライブラリベンチマークを作成しました。
論文 参考訳(メタデータ) (2023-07-28T07:43:13Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。