Sunteți pe pagina 1din 6

RESUMEN:

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.

Anlisis Lxico (Anlisis Lineal)


Un Analizador Lxico (o analizador lineal) transforma la secuencia de smbolos de entrada en una secuencia de componentes (smbolos) lxicos sobre la cual es ms fcil hacer luego el anlisis sintctico. El A.L. lee caracteres de entrada y los agrupa en secuencias que tienen significado dentro de la estructura sintctica del lenguaje fuente. Un analizador lxico es un Traductor que acta en la primera fase de un proceso de compilacin.
Ejemplo

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

el analizador lxico la transforma en una secuencia de componentes lxicos:

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

tipo ident ident const const

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

lexemas mdc, tmp2, total

patrn letra seguida de letras o nmeros

Anlisis Sintctico (Anlisis Jerrquico en A.S.U.)


El Analisis Sintactico descubre la estructura sintctica (normalmente jerrquica) de la cadena de entrada usando las reglas que definen las cadenas vlidas en el Lenguaje fuente. Dichas reglas viene expresadas en forma de una Gramatica que describe de manera relativamente breve lasfrases o secuencias vlidas en un Lenguaje. Una gramtica tambin describe la estructura jerrquica o sintctica de las frases de un lenguaje. Una gramtica es un conjunto de reglas de la forma: a ? Por ejemplo: expre expre + expre

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

rbol de Anlisis Sintctico (Parse Tree)


El arbol sintctico es un rbol que refleja la estructura sintctica de la entrada. Ese tipo de rbol se llamarbol de anlisis sintctico (tambin rbol de sintaxis concreta, o arbol de derivacin).

rbol Sintctico (Abstracto)


Para facilitar la fase de anlisis semntico, el analizador sintctico puede transformar el rbol de sintaxis cocreta en un rbol de sintaxis abstracta o rbol sintctico a secas, donde se elimina la informacin sintctica que no es relevante para la compresin del significado lgico del programa:

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.

Generacin de Cdigo Intermedio


La fase de generacin de cdigo intermedio se ocupa de generar instrucciones para una mquina virtual genrica a partir de la informacin recopilada en las fases previas de anlisis . La razn por la cual no se genera cdigo objeto directamente es para permitir que la fase de optimizacin sea genrica y por lo tanto porttil (independiente del cdigo objeto especfico).

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.

Generacin de Cdigo Objeto

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.

S-ar putea să vă placă și