domingo, 29 de marzo de 2009

optimizacion de codigo, generacion de codigo objeto, generadores de analizadores lexicos...

OPTIMIZACIÓN DE CÓDIGO
La optimización de código puede realizarse durante la propia generación o como paso adicional, ya sea intercalado entre el análisis semántico y la generación de código (se optimizan las cuádruplas) o situado después de ésta (se optimiza a posteriori el código generado).
Clasificación de optimizaciones:
Dependientes de la máquina.
Asignación de registros (ver capítulo anterior).
Instrucciones especiales ("idioms").
Reordenación del código.
Independientes de la máquina.
Ejecución en tiempo de compilación.
Eliminación de redundancias.
Cambio de orden.
Reducción de frecuencia de ejecución (invariancias).
Reducción de fuerza.

GENERACIÓN DE CÓDIGO OBJETO

Código generado por un compilador o un ensamblador traducido por un código fuente de un programa.
Casi siempre este término se refiere al código máquina que puede ejecutarse directamente en la unidad central de proceso (CPU) del sistema, pero también puede ser código fuente de lenguaje ensamblador o una variante de código máquina.
El código intermedio es un código abstracto independiente de la máquina para la que se generará el código objeto. El código intermedio ha de cumplir dos requisitos importantes: ser fácil de producir a partir del análisis sintáctico, y ser fácil de traducir al lenguaje objeto.

GENERADORES DE ANALIZADORES LEXICOS

Un analizador léxico es un módulo destinado a leer caracteres del archivo de entrada, donde se encuentra la cadena a analizar, reconocer subcadenas que correspondan a símbolos del lenguaje y retornar los tokens correspondientes y sus atributos. Escribir analizadores léxicos eficientes a mano puede resultar una tarea tediosa, para evitarla se han creado herramientas de software – los generadores de analizadores léxicos – que generan automáticamente un analizador léxico a partir de una especificación provista por el usuario.

No hay comentarios:

Publicar un comentario