Control flow analysis

In computer science, control flow analysis (CFA) is a static code analysis technique for determining the control flow of a program. The control flow is expressed as a control flow graph (CFG). 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.

For many imperative programming languages, the control flow of a program is explicit in a program's source code. As a result, interprocedural control-flow analysis implicitly usually refers to a static analysis technique for determining the receiver(s) of function or method calls in computer programs written in a higher-order programming language. For example, in a programming language with higher-order functions like Scheme, the target of a function call may not be explicit: in the isolated expression

(lambda (f) (f x))

it is unclear to which procedure f may refer. To determine the possible targets, a control-flow analysis must consider where this expression could be invoked, and what argument it may receive.

Techniques such as abstract interpretation, constraint solving, and type systems may be used for control-flow analysis.[1]

See also

References

  1. Flemming Nielson, Hanne Riis Nielson & Chris Hankin (1999). Principles of Program Analysis. Springer.

External links

This article is issued from Wikipedia - version of the 6/1/2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.