論文の概要: Moving beyond Deletions: Program Simplification via Diverse Program
Transformations
- arxiv url: http://arxiv.org/abs/2401.15234v1
- Date: Fri, 26 Jan 2024 22:59:43 GMT
- ステータス: 処理完了
- システム内更新日: 2024-01-30 19:25:58.643908
- Title: Moving beyond Deletions: Program Simplification via Diverse Program
Transformations
- Title(参考訳): 削除を超えて:多様なプログラム変換によるプログラムの単純化
- Authors: Haibo Wang, Zezhong Xing, Zheng Wang, Chengnian Sun, Shin Hwei Tan
- Abstract要約: 開発者は手動でプログラムを単純化する(この論文では開発者によるプログラムの単純化として知られている)。
手作業の労力を減らすために、ルールベースのアプローチ(例えば、削除に基づくアプローチ)は、開発者によるプログラムの単純化を自動化するために潜在的に適用できる。
単純化されたプログラムを自動生成するツールであるSimpT5を提案する。
評価の結果,SimpT5は開発者によるプログラムの単純化の自動化において,従来の手法よりも効果的であることが示唆された。
- 参考スコア(独自算出の注目度): 11.038120567076772
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: To reduce the complexity of software, Developers manually simplify program
(known as developer-induced program simplification in this paper) to reduce its
code size yet preserving its functionality but manual simplification is
time-consuming and error-prone. To reduce manual effort, rule-based approaches
(e.g., refactoring) and deletion-based approaches (e.g., delta debugging) can
be potentially applied to automate developer-induced program simplification.
However, as there is little study on how developers simplify programs in
Open-source Software (OSS) projects, it is unclear whether these approaches can
be effectively used for developer-induced program simplification. Hence, we
present the first study of developer-induced program simplification in OSS
projects, focusing on the types of program transformations used, the
motivations behind simplifications, and the set of program transformations
covered by existing refactoring types. Our study of 382 pull requests from 296
projects reveals that there exist gaps in applying existing approaches for
automating developer-induced program simplification. and outlines the criteria
for designing automatic program simplification techniques. Inspired by our
study and to reduce the manual effort in developer-induced program
simplification, we propose SimpT5, a tool that can automatically produce
simplified programs (semantically-equivalent programs with reduced source lines
of code). SimpT5 is trained based on our collected dataset of 92,485 simplified
programs with two heuristics: (1) simplified line localization that encodes
lines changed in simplified programs, and (2)checkers that measure the quality
of generated programs. Our evaluation shows that SimpT5 are more effective than
prior approaches in automating developer-induced program simplification.
- Abstract(参考訳): ソフトウェアの複雑さを軽減するため、開発者は手動でプログラムを単純化する(この論文では開発者によるプログラムの単純化として知られている)。
手動作業を減らすために、ルールベースのアプローチ(リファクタリングなど)と削除ベースのアプローチ(デルタデバッグなど)は、開発者によるプログラムの単純化を自動化するために潜在的に適用できる。
しかし,オープンソースソフトウェア(OSS)プロジェクトにおいて,開発者がプログラムをシンプルにする方法についてはほとんど研究されていないため,これらのアプローチが開発者によるプログラムの単純化に効果的に利用できるかどうかは不明である。
そこで本研究では,OSSプロジェクトにおける開発者主導型プログラムの簡略化に関する最初の研究として,プログラム変換のタイプ,単純化の背景にあるモチベーション,既存のリファクタリングタイプが対象とするプログラム変換のセットについて述べる。
296プロジェクトから382件のプルリクエストを行った結果,既存のアプローチを適用して開発者のプログラム簡略化を自動化する方法にはギャップがあることが分かりました。
自動プログラム単純化技術の設計基準を概説する。
本研究は,開発者主導型プログラムの簡易化における手作業の軽減を目的として,簡略化されたプログラムを自動生成するツールであるSimpT5を提案する。
SimpT5は,92,485個の単純化されたプログラムの収集したデータセットに基づいて,(1)単純化されたプログラムで変化した行をエンコードする単純化されたラインローカライゼーション,(2)生成されたプログラムの品質を測定するチェッカーの2つのヒューリスティックで訓練されている。
評価の結果,SimpT5は開発者によるプログラムの単純化の自動化において,従来の手法よりも効果的であることがわかった。
関連論文リスト
- Guided Sketch-Based Program Induction by Search Gradients [0.0]
本稿では,進化戦略を用いた探索勾配によるパラメータ化プログラムの学習フレームワークを提案する。
この定式化は、プログラマがプログラムのスケッチにタスク固有のコードを付与できるようにするため、従来のプログラム帰納法から逸脱する。
論文 参考訳(メタデータ) (2024-02-10T16:47:53Z) - Refactoring Programs Using Large Language Models with Few-Shot Examples [20.48175387745551]
ユーザ記述型Pythonプログラムのより複雑なバージョンを提案するために,大規模言語モデル (LLM) である GPT-3.5 を用いることを実演する。
95.68%のプログラムは、それぞれ10の候補を発生させ、結果として平均的なサイクロマティックな複雑さが17.35%減少することを示した。
論文 参考訳(メタデータ) (2023-11-20T11:43:45Z) - Hierarchical Programmatic Reinforcement Learning via Learning to Compose
Programs [58.94569213396991]
プログラムポリシーを作成するための階層型プログラム強化学習フレームワークを提案する。
提案するフレームワークは,プログラム作成の学習を通じて,アウト・オブ・ディストリビュータの複雑な動作を記述するプログラムポリシーを作成することができる。
Karel ドメインの実験結果から,提案するフレームワークがベースラインより優れていることが示された。
論文 参考訳(メタデータ) (2023-01-30T14:50:46Z) - NAPG: Non-Autoregressive Program Generation for Hybrid Tabular-Textual
Question Answering [52.10214317661547]
現在の数値推論法はプログラムシーケンスを自己回帰的にデコードする。
プログラム生成の精度は、デコードステップがエラー伝搬によって展開されるにつれて急激に低下する。
本稿では,非自己回帰型プログラム生成フレームワークを提案する。
論文 参考訳(メタデータ) (2022-11-07T11:25:21Z) - CodeRL: Mastering Code Generation through Pretrained Models and Deep
Reinforcement Learning [92.36705236706678]
CodeRLは、事前訓練されたLMと深層強化学習によるプログラム合成タスクのための新しいフレームワークである。
推論中、我々は重要なサンプリング戦略を持つ新しい生成手順を導入する。
モデルバックボーンについては,CodeT5のエンコーダデコーダアーキテクチャを拡張し,学習目標を拡張した。
論文 参考訳(メタデータ) (2022-07-05T02:42:15Z) - Learning from Self-Sampled Correct and Partially-Correct Programs [96.66452896657991]
そこで本研究では,モデルが学習中にサンプリングを行い,自己サンプリングされた完全正当プログラムと部分正当プログラムの両方から学習することを提案する。
自己サンプリング型プログラムと部分修正型プログラムを併用することで,学習とサンプリングプロセスのガイドに役立てることができることを示す。
提案手法は,MLEを用いた単一の参照プログラムからの学習と比較して,パス@kの性能を3.1%から12.3%向上させる。
論文 参考訳(メタデータ) (2022-05-28T03:31:07Z) - Programming with Neural Surrogates of Programs [17.259433118432757]
本稿では,3つのサロゲート型設計パターンについて検討し,大規模CPUシミュレータのケーススタディでそれぞれを評価する。
サロゲートコンパイルでは、プログラマはエンドユーザにデプロイするプログラムの振る舞いを模倣するサロゲートを開発する。
サロゲート適応では、プログラマはプログラムのサロゲートを開発し、異なるタスクでサロゲートを再訓練する。
サロゲート最適化では、プログラムのサロゲートを開発し、サロゲートの入力パラメータを最適化し、最適化された入力パラメータを元のプログラムにプラグインする。
論文 参考訳(メタデータ) (2021-12-12T04:45:41Z) - Procedures as Programs: Hierarchical Control of Situated Agents through
Natural Language [81.73820295186727]
エージェント命令と制御のための階層的な手続き的知識を表現する強力な手法である,プログラムとしての手続きの形式化を提案する。
NL命令に対するIQAおよびALFREDデータセット上で、このフレームワークをインスタンス化する。
論文 参考訳(メタデータ) (2021-09-16T20:36:21Z) - Incremental maintenance of overgrounded logic programs with tailored
simplifications [0.966840768820136]
単調に成長する命題プログラムを生成するための新しい戦略を導入する。
従来の手法では、カスタマイズされた単純化技術により、インスタンス化されたプログラムのサイズが小さくなる。
論文 参考訳(メタデータ) (2020-08-06T21:50:11Z) - Synthesize, Execute and Debug: Learning to Repair for Neural Program
Synthesis [81.54148730967394]
本稿では,合成,実行,デバッグの段階を組み込んだニューラルネットワーク生成フレームワークであるSEDを提案する。
SEDはまず、神経プログラムシンセサイザーコンポーネントを使用して初期プログラムを生成し、その後、神経プログラムデバッガを使用して生成されたプログラムを反復的に修復する。
挑戦的な入出力プログラム合成ベンチマークであるKarelでは、SEDはニューラルプログラムシンセサイザー自体のエラー率をかなりのマージンで削減し、デコードのための標準ビームサーチより優れている。
論文 参考訳(メタデータ) (2020-07-16T04:15:47Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。