CodeFlow: Program Behavior Prediction with Dynamic Dependencies Learning
Cuong Chi Le, Hoang Nhat Phan, Huy Nhat Phan, Tien N. Nguyen, Nghi D., Q. Bui

TL;DR
CodeFlow is a machine learning approach that predicts program behavior by learning static control flow and dynamic execution dependencies, improving accuracy in code coverage prediction and runtime error detection.
Contribution
It introduces a novel method combining static CFG analysis with dynamic execution traces to enhance program behavior prediction.
Findings
Outperforms existing models in code coverage prediction
Accurately localizes runtime errors
Significantly improves understanding of program behaviors
Abstract
Predicting program behavior without execution is a critical task in software engineering. Existing models often fall short in capturing the dynamic dependencies among program elements. To address this, we present CodeFlow, a novel machine learning-based approach that predicts code coverage and detects runtime errors by learning both static and dynamic dependencies within the code. By using control flow graphs (CFGs), CodeFlow effectively represents all possible execution paths and the statistic relations between different statements, providing a more comprehensive understanding of program behaviors. CodeFlow constructs CFGs to represent possible execution paths and learns vector representations (embeddings) for CFG nodes, capturing static control-flow dependencies. Additionally, it learns dynamic dependencies by leveraging execution traces, which reflect the impacts among statements…
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 Reliability and Analysis Research · Software System Performance and Reliability
