Code Representation Pre-training with Complements from Program Executions
Jiabo Huang, Jianyu Zhao, Yuyang Rong, Yiwen Guo, Yifeng He, Hao Chen

TL;DR
This paper introduces FuzzPretrain, a pre-training method that incorporates dynamic execution information from test cases to enhance code representations, leading to improved code search performance.
Contribution
It proposes a novel pre-training approach that leverages program execution data from test cases to improve code understanding beyond syntactic features.
Findings
FuzzPretrain improves code search mAP by over 6% and 9% compared to source code and AST-based models.
Learning from program executions provides more discriminative code representations.
Experimental results validate the effectiveness of incorporating dynamic execution information.
Abstract
Large language models (LLMs) for natural language processing have been grafted onto programming language modeling for advancing code intelligence. Although it can be represented in the text format, code is syntactically more rigorous in order to be properly compiled or interpreted to perform a desired set of behaviors given any inputs. In this case, existing works benefit from syntactic representations to learn from code less ambiguously in the forms of abstract syntax tree, control-flow graph, etc. However, programs with the same purpose can be implemented in various ways showing different syntactic representations while the ones with similar implementations can have distinct behaviors. Though trivially demonstrated during executions, such semantics about functionality are challenging to be learned directly from code, especially in an unsupervised manner. Hence, in this paper, we…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Software System Performance and Reliability
