Treefix: Enabling Execution with a Tree of Prefixes

要約

コードを実行できることは、さまざまな動的プログラム分析の前提条件です。
学習ガイド付き実行は、欠落している変数の可能性のある値をニューラル モデルに予測させることで、任意のコード スニペットの実行を可能にするアプローチとして提案されています。
LExecutor などの最先端の学習ガイド付き実行アプローチでは、比較的大量のコードを実行できますが、可能な値の限られたセットを予測することに限定されており、以前の実行からのフィードバックは使用されません。
さらに多くのコードを実行します。
このペーパーでは、LLM を活用して、特定のコード スニペットの実行を可能にするコード プレフィックスを繰り返し作成する、新しい学習ガイド付き実行アプローチである Treefix について説明します。
このアプローチでは、複数のステップで問題に対処します。各ステップでは、コード スニペットとその実行に関するフィードバックを使用して、以前に生成されたプレフィックスを改善するように LLM に指示します。
このプロセスでは、プレフィックスのツリーが繰り返し作成され、そのサブセットが、コード スニペットの実行行数を最大化するプレフィックスとしてユーザーに返されます。
Python コード スニペットの 2 つのデータセットを使用した実験では、Treefix は学習ガイド付き実行の現在の最先端技術と比較して 25% および 7% 多くのカバレッジを達成し、コード スニペットの全行の合計 84% と 82% をカバーしました。

要約(オリジナル)

The ability to execute code is a prerequisite for various dynamic program analyses. Learning-guided execution has been proposed as an approach to enable the execution of arbitrary code snippets by letting a neural model predict likely values for any missing variables. Although state-of-the-art learning-guided execution approaches, such as LExecutor, can enable the execution of a relative high amount of code, they are limited to predicting a restricted set of possible values and do not use any feedback from previous executions to execute even more code. This paper presents Treefix, a novel learning-guided execution approach that leverages LLMs to iteratively create code prefixes that enable the execution of a given code snippet. The approach addresses the problem in a multi-step fashion, where each step uses feedback about the code snippet and its execution to instruct an LLM to improve a previously generated prefix. This process iteratively creates a tree of prefixes, a subset of which is returned to the user as prefixes that maximize the number of executed lines in the code snippet. In our experiments with two datasets of Python code snippets, Treefix achieves 25% and 7% more coverage relative to the current state of the art in learning-guided execution, covering a total of 84% and 82% of all lines in the code snippets.

arxiv情報

著者 Beatriz Souza,Michael Pradel
発行日 2025-01-21 18:13:43+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.SE パーマリンク