Grafo de control de flujo

En ciencias de la computación, un grafo de control de flujo (CFG) es una representación, en forma de grafo dirigido, de todos los caminos que pueden ser atravesados a través de un programa durante su ejecución.[1]

Descripción

editar

Cada nodo del grafo representa una región contigua de código sin ramas, conocidos como bloque básico, y las aristas entre los nodos indican saltos en el flujo del programa. Existen dos bloques especiales, el de entrada, que ninguna arista llega a él y es la única forma de empezar a recorrer el grafo, y el de salida, del que ninguna arista sale y es la única forma de terminar de recorrer el grafo.[2][3][4]

Construcciones estructurales

editar

Las estructuras de control se pueden ver representadas en el grafo de la siguiente manera:

 
Aquí se muestran algunas construcciones estructurales en forma de grafo de control de flujo[5]

Utilidad

editar

El grafo de control de flujo tiene gran utilidad a la hora de realizar optimizaciones en el compilador y análisis estático de software.[6][7]

Véase también

editar

Referencias

editar
  1. Avrora. «Control Flow Graph Tool» (en inglés). Consultado el 17 de enero de 2013. 
  2. «Técnicas de prueba». Consultado el 17 de enero de 2013. 
  3. Jesús Hernández Tapia. «HERRAMIENTA DE SINTESIS DE ALTO NIVEL PARA SISTEMAS DIGITALES». Consultado el 17 de enero de 2013. 
  4. Yousefi, Javad (2015). Masking wrong-successor Control Flow Errors employing data redundancy. IEEE. pp. 201-205. doi:10.1109/ICCKE.2015.7365827. 
  5. «Sistema de Seguimiento Académico Escola "Colegio Ave Maria"». Consultado el 17 de enero de 2013. 
  6. Salvador Valerio Cavadini (junio de 2004). «Enseñanza para la comprensión en Compiladores e Intérpretes». Consultado el 17 de enero de 2013. 
  7. «Optimización de código». Consultado el 17 de enero de 2013. 

Enlaces externos

editar