Control-flow analysis

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Template:Short description Template:Cleanup-rewrite 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.Script error: No such module "Unsubst".

For many imperative programming languages, the control flow of a program is explicit in a program's source code.Script error: No such module "Unsubst". 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.Script error: No such module "Unsubst". 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. 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.[1]Script error: No such module "Unsubst".

See also

References

<templatestyles src="Reflist/styles.css" />

  1. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

External links

Script error: No such module "Side box".

Template:Compiler optimizations