LPR: Large Language Models-Aided Program Reduction

Enregistré dans:
Détails bibliographiques
Publié dans:arXiv.org (May 11, 2024), p. n/a
Auteur principal: Zhang, Mengxiao
Autres auteurs: Tian, Yongqiang, Xu, Zhenyang, Dong, Yiwen, Shin Hwei Tan, Sun, Chengnian
Publié:
Cornell University Library, arXiv.org
Sujets:
Accès en ligne:Citation/Abstract
Full text outside of ProQuest
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!

MARC

LEADER 00000nab a2200000uu 4500
001 2904544034
003 UK-CbPIL
022 |a 2331-8422 
024 7 |a 10.1145/3650212.3652126  |2 doi 
035 |a 2904544034 
045 0 |b d20240511 
100 1 |a Zhang, Mengxiao 
245 1 |a LPR: Large Language Models-Aided Program Reduction 
260 |b Cornell University Library, arXiv.org  |c May 11, 2024 
513 |a Working Paper 
520 3 |a Program reduction is a prevalent technique to facilitate compilers' debugging by automatically minimizing bug-triggering programs. Existing program reduction techniques are either generic across languages (e.g., Perses and Vulcan) or specifically customized for one certain language by employing language-specific features, like C-Reduce. However, striking the balance between generality across multiple programming languages and specificity to individual languages in program reduction is yet to be explored. This paper proposes LPR, the first technique utilizing LLMs to perform language-specific program reduction for multiple languages. The core insight is to utilize both the language-generic syntax level program reduction (e.g., Perses) and the language-specific semantic level program transformations learned by LLMs. Alternately, language-generic program reducers efficiently reduce programs into 1-tree-minimality, which is small enough to be manageable for LLMs; LLMs effectively transform programs via the learned semantics to expose new reduction opportunities for the language-generic program reducers to further reduce the programs. Our extensive evaluation on 50 benchmarks across three languages (C, Rust, and JavaScript) has highlighted LPR's practicality and superiority over Vulcan, the state-of-the-art language-generic program reducer. For effectiveness, LPR surpasses Vulcan by producing 24.93%, 4.47%, and 11.71% smaller programs on benchmarks in C, Rust and JavaScript. Moreover, LPR and Vulcan have demonstrated their potential to complement each other. By using Vulcan on LPR's output for C programs, we achieve program sizes comparable to those reduced by C-Reduce. For efficiency, LPR takes 10.77%, 34.88%, 36.96% less time than Vulcan to finish all benchmarks in C, Rust and JavaScript, separately. 
653 |a Language 
653 |a Java 
653 |a Semantics 
653 |a Reduction 
653 |a Large language models 
653 |a JavaScript 
653 |a Benchmarks 
653 |a Effectiveness 
700 1 |a Tian, Yongqiang 
700 1 |a Xu, Zhenyang 
700 1 |a Dong, Yiwen 
700 1 |a Shin Hwei Tan 
700 1 |a Sun, Chengnian 
773 0 |t arXiv.org  |g (May 11, 2024), p. n/a 
786 0 |d ProQuest  |t Engineering Database 
856 4 1 |3 Citation/Abstract  |u https://www.proquest.com/docview/2904544034/abstract/embedded/ZKJTFFSVAI7CB62C?source=fedsrch 
856 4 0 |3 Full text outside of ProQuest  |u http://arxiv.org/abs/2312.13064