TRACED: Execution-aware Pre-training for Source Code
Yangruibo Ding, Benjamin Steenhoek, Kexin Pei, Gail E. Kaiser, Wei Le, Baishakhi Ray
Abstract
Most existing pre-trained language models for source code focus on learning the static code text, typically augmented with static code structures (abstract syntax tree, dependency graphs, etc.). However, program semantics will not be fully exposed before the real execution. Without an understanding of the program execution, statically pre-trained models fail to comprehensively capture the dynamic code properties, such as the branch coverage and the runtime variable values, and they are consequently less effective at code understanding tasks, such as retrieving semantic clones and detecting software vulnerabilities.
Topics & Concepts
Computer scienceProgramming languageAbstract syntax treeSource codeSemantics (computer science)Dependency (UML)Code (set theory)SyntaxFocus (optics)KPI-driven code analysisAbstract syntaxCode reviewStatic program analysisStatic analysisSoftwareArtificial intelligenceSoftware developmentParsingSet (abstract data type)PhysicsOpticsSoftware Engineering ResearchSoftware Reliability and Analysis ResearchSoftware Testing and Debugging Techniques