In computer science, control-flow analysis (CFA) is a static-code-analysis technique for determining the control flow of a program.
For both functional programming languages and object-oriented programming languages, the term CFA, and elaborations such as k-CFA, refer to specific algorithms that compute control flow.
[dubious – discuss] As a result, interprocedural control-flow analysis implicitly usually refers to a static analysis technique for determining the receivers of function or method calls in computer programs written in a higher-order programming language.
A control-flow analysis must consider where this expression could be invoked and what argument it may receive to determine the possible targets.
Techniques such as abstract interpretation, constraint solving, and type systems may be used for control-flow analysis.