TECNOLÓGICO NACIONAL DE MEXICO CAMPUS TUXTLA GUTIÉRREZ INGENIERIA EN SISTEMAS COMPUTACIONALES MATERIA: LENGUAJES Y AUTOMATAS 2 PRECENTA: Vazquez Lopez O. Gerardo Estrada Juarez C. Daniel Arias Hernandez C. Benjamin Solano Gamboa A. Eduardo Tipos de optimización Optimización local La optimización es un proceso que tiende a minimizar o maximizar alguna variable de rendimiento, generalmente tiempo, espacio, procesador, etc Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador. La optimización va a depender del lenguaje de programación y es directamente proporcional al tiempo de compilación; es decir, entre más optimización mayor tiempo de compilación. ¿Que es optimización local? La optimización local se realiza sobre módulos del programa. En la mayoría de las ocasiones a través de funciones, métodos, procedimientos, clases, etc. Las características de las optimizaciones locales es que solo se ven reflejados en dichas secciones. La optimización local sirve cuando un bloque de programa o sección es crítico por ejemplo: la E/S, la concurrencia, la rapidez y confiabilidad de un conjunto de instrucciones. Bloque Básico Las optimizaciones locales se realizan sobre el bloque básico Un bloque básico es un fragmento de código que tiene una única entrada y salida, y cuyas instrucciones se ejecutan secuencialmente. Implicaciones: Si se ejecuta una instrucción del bloque se ejecutan todas en un orden conocido en tiempo de compilación. La idea del bloque básico es encontrar partes del programa cuyo análisis necesario para la optimización sea lo más simple posible. Ensamblamiento (Folding) El ensamblamiento es remplazar las expresiones por su resultado cuando se pueden evaluar en tiempo de compilación (resultado constante). – Ejemplo: A=2+3+A+C -> A=5+A+C Estas optimizaciones permiten que el programador utilice cálculos entre constantes representados explícitamente sin introducir ineficiencias Propagación de constantes Desde que se asigna a una variable un valor constante hasta la siguiente asignación, se considera a la variable equivalente a la constante. • Ejemplo: Propagación Ensamblamiento PI=3.14 -> PI=3.14 -> PI=3.14 G2R=PI/180 -> G2R=3.14/180 -> G2R=0.017 PI y G2R se consideran constantes hasta la próxima asignación. Estas optimizaciones permiten que el programador utilice variables como constantes sin introducir ineficiencias. Por ejemplo en C no hay constantes y será lo mismo utilizar Reducción de potencia La reducción de potencia se refiere a la optimización de sistemas de reconocimiento de lenguajes formales y autómatas para minimizar el consumo de recursos computacionales, como el tiempo de procesamiento y la memoria, mientras se mantiene o mejora la eficiencia en la detección y procesamiento de lenguajes. Reducción de subexpresiones comunes La reducción de subexpresiones comunes se considera una optimización local porque se enfoca en un fragmento específico del código o la estructura del lenguaje, en lugar de cambios globales en todo el programa o lenguaje. El objetivo es eliminar la duplicación de cálculos o representaciones para mejorar la eficiencia en un área específica.