Learning to Predict Program Execution by Modeling Dynamic Dependency on Code Graphs
Predicting program behavior without execution is a crucial and challenging task in software engineering. Traditional models often struggle to capture the dynamic dependencies and interactions within code. This paper introduces a novel machine learning-based framework called CodeFlow, designed to pre...
Gespeichert in:
Hauptverfasser: | , , , , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | Predicting program behavior without execution is a crucial and challenging
task in software engineering. Traditional models often struggle to capture the
dynamic dependencies and interactions within code. This paper introduces a
novel machine learning-based framework called CodeFlow, designed to predict
code coverage and detect runtime errors through Dynamic Dependencies Learning.
By utilizing control flow graphs (CFGs), CodeFlow represents all possible
execution paths and the relationships between different statements, providing a
comprehensive understanding of program behavior. CodeFlow constructs CFGs to
depict execution paths and learns vector representations for CFG nodes,
capturing static control-flow dependencies. Additionally, it learns dynamic
dependencies through execution traces, which reflect the impacts among
statements during execution. This approach enables accurate prediction of code
coverage and effective identification of runtime errors. Empirical evaluations
demonstrate significant improvements in code coverage prediction accuracy and
effective localization of runtime errors, outperforming existing models. |
---|---|
DOI: | 10.48550/arxiv.2408.02816 |