Control-flow analysis: Difference between revisions

Content deleted Content added
External links: fix CFA survey link
m Task 70: Update syntaxhighlight tags - remove use of deprecated <source> tags
Line 4:
 
For many [[imperative programming language]]s, the control flow of a program is explicit in a program's source code.{{dubious|date=July 2014}} As a result, [[interprocedural analysis|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]].{{dubious|date=July 2014}} For example, in a programming language with [[higher-order functions]] like [[Scheme (programming language)|Scheme]], the target of a function call may not be explicit: in the isolated expression
<sourcesyntaxhighlight lang="scheme">
(lambda (f) (f x))
</syntaxhighlight>
</source>
it is unclear to which procedure <code>f</code> 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.