Articulo de referencia

Análisis del flujo de control

En informática , el análisis de flujo de control ( CFA ) es una técnica de análisis estático de código para determinar el flujo de control de un programa. El flujo de control se...

En informática , el análisis de flujo de control ( CFA ) es una técnica de análisis estático de código para determinar el flujo de control de un programa. El flujo de control se expresa como un grafo de flujo de control (CFG). Tanto en lenguajes de programación funcional como en lenguajes de programación orientados a objetos , el término CFA, y sus variantes como k -CFA, se refieren a algoritmos específicos que calculan el flujo de control.

Para muchos lenguajes de programación imperativos , el flujo de control de un programa es explícito en el código fuente del programa. Como resultado, el análisis del flujo de control interprocedimental generalmente se refiere implícitamente a una técnica de análisis estático para determinar los receptores de las llamadas a funciones o métodos en programas informáticos escritos en un lenguaje de programación de orden superior . Por ejemplo, en un lenguaje de programación con funciones de orden superior como Scheme , el destino de una llamada a función puede no ser explícito: en la expresión aislada

( lambda ( f ) ( f x ))

No está claro a qué procedimiento fse refiere. Un análisis de flujo de control debe considerar dónde podría invocarse esta expresión y qué argumento podría recibir para determinar los posibles objetivos.

Se pueden utilizar técnicas como la interpretación abstracta , la resolución de restricciones y los sistemas de tipos para el análisis del flujo de control. [ 1 ]

Véase también

Referencias

  1. Nielson, Flemming; Nielson, Hanne Riis ; Hankin, Chris (2005). Principios del análisis de programas . Springer Science+Business Media .
  • para el análisis factorial confirmatorio intraprocedimental de libros de texto en lenguajes imperativos
  • Análisis factorial confirmatorio en programas funcionales (encuesta)
  • para la relación entre el análisis CFA en lenguajes funcionales y el análisis de punteros en lenguajes imperativos/POO