En el ámbito de la optimización de compiladores , el algoritmo de análisis de expresiones disponibles determina, para cada punto del programa, el conjunto de expresiones que no necesitan recalcularse. Se dice que dichas expresiones están disponibles en ese punto. Para que una expresión esté disponible en un punto del programa, sus operandos no deben modificarse en ningún punto de la ruta desde su aparición hasta dicho punto.
El análisis es un ejemplo de un problema de análisis de flujo de datos hacia adelante . Se mantiene un conjunto de expresiones disponibles. Cada instrucción se analiza para determinar si modifica los operandos de una o más expresiones disponibles. Esto genera conjuntos de expresiones disponibles al final de cada bloque básico , conocido como el inicio en términos de análisis de flujo de datos. Una expresión está disponible al comienzo de un bloque básico si está disponible al final de cada uno de sus predecesores. Esto da como resultado un conjunto de ecuaciones en términos de conjuntos disponibles, que se pueden resolver mediante un algoritmo iterativo.
El análisis de expresión disponible se utiliza para realizar la eliminación global de subexpresiones comunes (CSE). Si una expresión está disponible en un punto determinado, no es necesario volver a evaluarla.
Referencias
- Aho, Sethi y Ullman: Compiladores: principios, técnicas y herramientas. Addison-Wesley Publishing Company, 1986.
- Optimizaciones del compilador
- Análisis del flujo de datos
- esbozos de informática