Control-flow analysis: Difference between revisions

Content deleted Content added
it wasn't, except maybe in their own little sub-field, but it's better to have no info than false info; see talk; there's a survey in the EL section for the FP CFA which should be enough for now
Line 1:
{{rewrite}}
In [[computer science]], '''control flow analysis''' 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). TheFor termboth "control[[functional flowprogramming analysis"language]]s was introduced independently byand [[Neilobject-oriented D.programming Joneslanguage]]<ref>s, the term CFA, and elaborations such as ''k''-CFA, refer to specific algorithms that compute control flow.{{citationdubious}}
| author = Neil D. Jones
| title = Flow analysis of lambda expressions
| journal = Automata, Languages and Programming
| year = 1981
| doi = 10.1007/3-540-10843-2_10
| pages = 114–128
}}</ref> and [[Olin Shivers]].<ref>{{citation
| last = Shivers
| first = Olin
| title = Control-flow analysis in Scheme
| pages = 164–174
| journal = Proceedings of the ACM SIGPLAN'88 Conference on Programming Language Design and Implementation (PLDI)
| series = SIGPLAN Notices, Vol.23, No.7
| year = 1988
| doi = 10.1145/53990.54007
}}</ref>{{primary source inline}} For both [[functional programming language]]s and [[object-oriented programming language]]s, the term CFA, and elaborations such as ''k''-CFA, refer to specific algorithms that compute control flow.{{dubious}}
 
For many [[imperative programming language]]s, the control flow{{which}} of a program is explicit in a program's source code.{{dubious}} 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}} 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