Documente Academic
Documente Profesional
Documente Cultură
contenido Fases Anlisis Lxico (Anlisis Lineal) Anlisis Sintctico (Anlisis Jerrquico en A.S.U.) Anlisis Semntico Generacin de Cdigo Intermedio Optimizacin Generacin de Cdigo Objeto
Fases
Todos los compiladores deben realizar las funciones descritas para cada fase, pero muchos compiladores unen ms de una fase en un solo mdulo o grupo de rutinas. anlisis (gr. anlysis, de analyo, desatar) 1 m. Distincin y separacin de las partes de un todo hasta llegar a conocer los principios o elementos de ste. 2 GRAM. Distincin de las oraciones que componen un discurso; de las categoras, accidentes y otras propiedades gramaticales de las palabras: ~ lgico, examen de los elementos de una oracin y de las relaciones que las oraciones guardan entre s; ~ estilstico, estudio del valor expresivo de los elementos lingsticos de un texto. sntesis (gr. synthesis) 1 f. Composicin de un todo por la reunin de sus partes. 2 Suma y compendio de una materia.
La siguiente expresin: a = (b + 1) >> 2; // comentario es leda por el analizador lxico como una secuencia de caracteres: a = ( b + 1 ) > > 2 ; / / c o m e n t a r i o
ident a
ident b
const 1
op >>
const 2
En ocasiones el AL interacta con la tabla de smbolos y almacena all la informacin sobre los identificadores que consigue:
ident 1
ident 2
const 3
op >>
const 4
Tabla de Smbolos
pos 1 2 3 4
valor a b 1 2
Eficiencia
Se usa un AL independiente para hacer ms fcil la tarea de Analizador Sintactico. Como un AL bsicamente agrupa caracteres, su funcin se puede hacer muy eficiente.
Desechar Informacin
El AL puede desechar informacin que no es relevante para el significado del programa, como espacios en blanco y comentarios.
Lexema
Un Lexema (lexeme) es una cadena de caracteres que debe ser tratada en conjunto en el lenguaje fuente: mcd ( >>
Componente Lxico
Un Componente Lexico es el tipo asociado a un subconjunto particular de lexemas, como los identificadores, o nmeros en un lenguaje de programacin. A cada componente lxico se asocia un patrnque concuerda con los lexemas del conjunto asociado al componente lxico.
c.l. ident
Cada regla se llama una produccin, y el operador "?" puede leerse como tiene la siguiente forma, o tiene la siguiente expansin. Este es un ejemplo de una gramtica para las expresiones aritmticas: EE+T|T EE-T|T TT*F|F TT/F|F F ( E ) | id | num
Anlisis Semntico
El anlisis semntico verifica que el rbol sintctico tenga un significado vlido dentro de las reglas semnticas del lenguaje. Por ejemplo, el analiador semntico verifica que: En una asignacin, el tipo de la variable concuerde con el tipo de la expresin asignada. Que los subndices se apliquen a variables tipo arreglo y no a otras. Que las variables estn declaradas antes de ser usadas.
Optimizacin
La fase de optimizacin se encarga de transformar el cdigo intermedio en uno de funcin equivalente pero de menor tamao o de menor tiempo de ejecucin. Algunas de las transformaciones que puede llevar a cabo la fase de optimizacin son: Eliminar el clculo de expresiones cuyo valor no se usa. Fundir en uno solo el clculo repetido de la misma expresin. Sacar de los lazos las expresiones cuyo valor no cambia en el lazo. Reducir el uso de memoria local reutilizando el espacio de una variable muerta.
La fase de generacin de cdigo objeto se encarga de generar el programa usando el juego de instrucciones especfico de la mquina o CPU objeto, y el formato para archivos ejecutables del sistema operativo. Entre otras cosas, tambin se le asignan direcciones definitivas a las rutinas y variables que componen el programa.