Live briefing
Everything about Control-flow graph
Graphical representation of a computer program or algorithm
In computer science, a control-flow graph (CFG) is a representation, using graph notation, of all paths that might be traversed through a function during its execution, or control flow. The control-flow graph was conceived by Frances E. Allen, who noted that Reese T. Prosser used boolean connectivity matrices for flow analysis before. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Control-flow graphA 5-minute orientation
- Skim a recent paper: Short-term OD flow prediction for urban rail transit control: A multi-graph spatiotemporal fusion approachInfluential work since 2022
- Pick up a classic book: Fundamentals of Computer Programming with CSharp Free Book (by Nakov & Co.)The most-reprinted book on the subject
- Read the landmark paper: Control Flow Graph Embedding Based on Multi-Instance Decomposition for Bug LocalizationCited 43 times
- Go sideways: Single-entry single-exitA closely related topic
- Go sideways: Data-flow analysisA closely related topic
📖 Definitions
Noun A representation, using graph notation, of all paths that might be traversed through a program during its execution.
🏆 Landmark papers (most cited)
Control Flow Graph Embedding Based on Multi-Instance Decomposition for Bug Localization
Annotated Control Flow Graph for Metamorphic Malware Detection
Malware Detection by Control-Flow Graph Level Representation Learning With Graph Isomorphism Network
Technique for IoT malware detection based on control flow graph analysis
Triplet-trained graph transformer with control flow graph for few-shot malware classification
Cognitive Complexity and Graph Convolutional Approach Over Control Flow Graph for Software Defect Prediction
Control Flow Graph Based Multiclass Malware Detection Using Bi-normal Separation
Proposal of Mark Flow Graph for Discrete System Control
🆕 Influential since 2022
Short-term OD flow prediction for urban rail transit control: A multi-graph spatiotemporal fusion approach
Enhancing Ethereum smart-contracts static analysis by computing a precise Control-Flow Graph of Ethereum bytecode
SCGformer: Smart contract vulnerability detection based on control flow graph and transformer
The flowing nature matters: feature learning from the control flow graph of source code for bug localization
CFG2AT: Control Flow Graph and Graph Attention Network-Based Software Defect Prediction
📚 Books worth reading
Fundamentals of Computer Programming with CSharp Free Book (by Nakov & Co.)Svetlin Nakov · 2013
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Single-entry single-exit Single-Entry Single-Exit (SESE) regions are a fundamental concept in structured programming and control-flow analysis. A SESE region is a portion of a…
- Data-flow analysis Data-flow analysis is a technique for gathering information about the possible set of values calculated at various points in a computer program. It forms…
- Essential complexity Essential complexity is a numerical measure defined by Thomas J. McCabe, Sr., in his highly cited, 1976 paper better known for introducing cyclomatic complexity…
- Control flow In software, control flow (or flow of control) describes how execution progresses from one command to the next. In many contexts, such as machine code…
- Cyclomatic complexity Cyclomatic complexity is a software metric used to indicate the complexity of a program. It is a quantitative measure of the number of linearly independent…
- Setjmp.h <setjmp.h> is a header defined in the C standard library to provide "non-local jumps": control flow that deviates from the usual subroutine call and return…
- Structured program theorem In programming language theory, the structured program theorem, generally called the Böhm–Jacopini theorem, states that a class of control-flow graphs…
- Label (computer science) In programming languages, a label is a sequence of characters that identifies a location within source code. In most languages, labels take the form of…