Análisis de control del flujo

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

El análisis de control de flujo es una técnica de análisis estático de software para determinar las estructuras de control de un programa. El control del flujo se representa a través del grafo de control del flujo (CFG).

En la mayoría de los lenguajes el control del flujo se encuentra explicito en el código fuente del programa. Como resultado el análisis de control de flujo implica usualmente referirse a un análisis estático de software.

El término análisis de control de flujo fue introducido independientemente por Neil D. Jones[1] and Olin Shivers.[2]

En un lenguaje de programación con funciones de orden superior como Scheme, el objetivo de un llamado a función puede no ser explicito. Por ejemplo en la siguiente expresión:

(lambda (f) (f x))

No está claro a que procedimiento f se refiere. Para determinar los posibles objetivos, se debería considerar un análisis de control del flujo cuando esta expresión sea invocada y que argumentos deba recibir.

La interpretación abstracta, la resolución de restricciones y el sistema de tipos suelen ser usados para llevar a cabo estos análisis.

Referencias[editar]

  1. Neil D. Jones (1981), «Flow analysis of lambda expressions», Automata, Languages and Programming: 114–128, doi:10.1007/3-540-10843-2_10 
  2. Shivers, Olin (1988), «Control-flow analysis in Scheme», Proceedings of the ACM SIGPLAN'88 Conference on Programming Language Design and Implementation (PLDI), SIGPLAN Notices, Vol.23, No.7: 164–174, doi:10.1145/53990.54007