Cómo utilizar AST para generar un gráfico de flujo de control de un programa
Por lo tanto, los enfoques ortodoxos recomiendan exponer explícitamente el flujo de control convirtiendo el AST en una representación intermedia (IR) más detallada antes de realizar el análisis del flujo de datos. Es este enfoque el que enseña Tiger Books, donde el Capítulo 7 cubre la generación de IR a partir de AST y el Capítulo 8 cubre el flujo de control y los bloques básicos en los IR. Esto fue mencionado en respuestas anteriores de @vczh y @Wei Chen. La respuesta de @ShaoCheng mencionó los Capítulos 8-9 del libro Dragón, y creo que sería mejor incluir también el Capítulo 6 (especialmente 6.6 Control Flow).
Para el análisis del flujo de datos, no importa si el IR está en forma de árbol, DAG o lineal, siempre que el flujo de control y las dependencias de los datos sean fáciles de analizar. La forma SSA de inter-IC expone ambos aspectos, especialmente la relación uso-definición (algunos inter-IC mantienen además relaciones definición-uso) y, por lo tanto, es popular entre los compiladores y analizadores de programas modernos. .