control-flow analysis

Uses your system voice; voice and rate in settings.

Q2348963Snapshot

≈ 3 min read

Names in other languages

  • Españolanálisis de control del flujo
  • Русскийанализ потока управления
  • Englishcontrol-flow analysis
  • 한국어제어 흐름 분석
  • 中文控制流分析
  • 简体中文控制流分析
  • 繁體中文控制流分析
  • 中文控制流分析

Article bodies are English and are not machine-translated. A name in another language is not a translation of the article.

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 receivers 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. 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.

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 receivers 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. 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. ==See also== Control-flow diagram (CFD) Data-flow analysis Cartesian product algorithm Pointer analysis ==References== ==External links== for textbook intraprocedural CFA in imperative languages CFA in functional programs (survey) for the relationship between CFA analysis in functional languages and points-to analysis in imperative/OOP languages

Text derived from https://en.wikipedia.org/w/index.php?oldid=1355883474 under CC BY-SA 4.0; modifications have been made.