論文の概要: LExecutor: Learning-Guided Execution
- arxiv url: http://arxiv.org/abs/2302.02343v3
- Date: Fri, 25 Aug 2023 14:44:06 GMT
- ステータス: 処理完了
- システム内更新日: 2023-08-28 23:34:08.971569
- Title: LExecutor: Learning-Guided Execution
- Title(参考訳): LExecutor:学習ガイドによる実行
- Authors: Beatriz Souza and Michael Pradel
- Abstract要約: 本稿では,任意のコードスニペットを制約の少ない方法で実行するための学習誘導型LExecutorを提案する。
キーとなるアイデアは、プログラムが立ち往生する原因となる欠落した値をニューラルモデルに予測させ、これらの値を実行に注入することです。
我々は、人気のあるオープンソースプロジェクトからのPythonコードに対するアプローチと、Stack Overflowから抽出されたコードスニペットについて評価する。
- 参考スコア(独自算出の注目度): 21.417049430066616
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Executing code is essential for various program analysis tasks, e.g., to
detect bugs that manifest through exceptions or to obtain execution traces for
further dynamic analysis. However, executing an arbitrary piece of code is
often difficult in practice, e.g., because of missing variable definitions,
missing user inputs, and missing third-party dependencies. This paper presents
LExecutor, a learning-guided approach for executing arbitrary code snippets in
an underconstrained way. The key idea is to let a neural model predict missing
values that otherwise would cause the program to get stuck, and to inject these
values into the execution. For example, LExecutor injects likely values for
otherwise undefined variables and likely return values of calls to otherwise
missing functions. We evaluate the approach on Python code from popular
open-source projects and on code snippets extracted from Stack Overflow. The
neural model predicts realistic values with an accuracy between 79.5% and
98.2%, allowing LExecutor to closely mimic real executions. As a result, the
approach successfully executes significantly more code than any available
technique, such as simply executing the code as-is. For example, executing the
open-source code snippets as-is covers only 4.1% of all lines, because the code
crashes early on, whereas LExecutor achieves a coverage of 51.6%.
- Abstract(参考訳): コードの実行は、様々なプログラム解析タスク、例えば例外を通じて現れるバグの検出や、さらなる動的解析のために実行トレースを取得するために不可欠である。
しかし、変数定義の欠如、ユーザ入力の欠如、サードパーティの依存関係の欠如など、任意のコードを実行することは現実的には難しいことが多い。
本稿では,任意のコードスニペットを制約の少ない方法で実行するための学習誘導型LExecutorを提案する。
キーとなるアイデアは、プログラムが停止する原因となる欠落した値をニューラルモデルに予測させ、これらの値を実行に注入することです。
例えば、LExecutorは、そうでなければ未定義変数の可能性のある値を注入し、そうでない関数に呼び出しの値を返す。
人気のあるオープンソースプロジェクトのpythonコードとstack overflowから抽出したコードスニペットのアプローチを評価した。
ニューラルネットワークは79.5%から98.2%の精度で現実的な値を予測し、LExecutorは実際の実行を忠実に模倣することができる。
その結果、このアプローチは、コードをas-isで単に実行するなど、利用可能なテクニックよりもはるかに多くのコードを実行することに成功した。
例えば、オープンソースのコードスニペットは早期にクラッシュするため、全行の4.1%しかカバーしていないが、LExecutorは51.6%のカバレッジを達成している。
関連論文リスト
- DOCE: Finding the Sweet Spot for Execution-Based Code Generation [69.5305729627198]
本稿では,候補生成,$n$-best再ランク,最小ベイズリスク(MBR)復号化,自己老化などを含む包括的フレームワークを提案する。
本研究は,実行ベースメソッドの重要性と,実行ベースメソッドと実行フリーメソッドとの差を明らかにする。
論文 参考訳(メタデータ) (2024-08-25T07:10:36Z) - SelfPiCo: Self-Guided Partial Code Execution with LLMs [13.102905470309851]
SelfPiCoは、オープンソースのCode Llamaをインタラクティブループに組み込むことで、部分的なコード実行を動的にガイドする。
SelfPiCoは、オープンソースコードとStack Overflowスニペットの全行の72.7%と83.3%を実行できる。
論文 参考訳(メタデータ) (2024-07-24T03:43:30Z) - Reasoning Runtime Behavior of a Program with LLM: How Far Are We? [25.451857140926943]
コードのための大規模な言語モデル(LLM)は、強力なコード理解と生成能力を示している。
コード推論は、コードLLMの最も重要な能力の1つである。
本稿では,プログラム実行によるLLMのコード推論能力と一貫性を評価するためのフレームワークであるRevalを提案する。
論文 参考訳(メタデータ) (2024-03-25T05:37:16Z) - TRACED: Execution-aware Pre-training for Source Code [24.101763959136058]
TRACEDは、ソースコードに対する実行対応事前学習戦略である。
私たちの目標は、事前トレーニング中に複雑な実行ロジックをコードモデルに教えることです。
TRACEDは静的に事前訓練されたコードモデルを、完全な実行パス予測では12.4%、実行時変数値予測では25.2%改善している。
論文 参考訳(メタデータ) (2023-06-13T01:30:14Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - Code Execution with Pre-trained Language Models [88.04688617516827]
コードインテリジェンスのトレーニング済みモデルのほとんどは実行トレースを無視しており、ソースコードと構文構造のみに依存している。
我々は,大規模かつ現実的なPythonデータセットとコード実行タスクを作成するために,突然変異に基づくデータ拡張手法を開発した。
次に、コード実行事前学習とカリキュラム学習を活用して意味理解を強化するトランスフォーマーモデルであるCodeExecutorを提案する。
論文 参考訳(メタデータ) (2023-05-08T10:00:05Z) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z) - Natural Language to Code Translation with Execution [82.52142893010563]
実行結果-プログラム選択のための最小ベイズリスク復号化。
そこで本研究では,自然言語からコードへのタスクにおいて,事前訓練されたコードモデルの性能を向上することを示す。
論文 参考訳(メタデータ) (2022-04-25T06:06:08Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。