En la mayoría de los lenguaje de programación, el control del flujo se encuentra explícito 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] y 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 ser implícito. Por ejemplo, en la siguiente expresión:
No está claro a qué 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.
↑Neil D. Jones (1981), «Flow analysis of lambda expressions», Automata, Languages and Programming: 114-128, doi:10.1007/3-540-10843-2_10.
↑Shivers, Olin (1988), «Control-flow analysis in Scheme», Reprinted in \emph{20 Years of the ACM SIGPLAN Conference on
Programming Language Design and Implementation (1979--1999):
A Selection, 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.