Está en la página 1de 3

1.1.

2 el proceso de compilacin
Definicin de Un compilador es un programa informtico que traduce un
compilador
programa escrito en un lenguaje de programacin a otro lenguaje de
programacin, generando un programa equivalente que la mquina
ser capaz de interpretar. Usualmente el segundo lenguaje
es lenguaje de mquina, pero tambin puede ser un cdigo intermedio
(bytecode), o simplemente texto. Este proceso de traduccin se
conoce como compilacin

Estructura de
un Compilador

Cualquier compilador debe realizar dos tareas principales: anlisis del


programa a compilar y sntesis de un programa en lenguaje mquina
que, cuando se ejecute, realizara correctamente las actividades
descritas en el programa fuente. Para el estudio de un compilador, es
necesario dividir su trabajo en fases. Cada fase representa una
transformacin al cdigo fuente para obtener el cdigo objeto. Las tres
primeras fases realizan la tarea de anlisis, y las dems la sntesis. En
cada una de las fases se utiliza un administrador de la tabla de
smbolos y un manejador de errores.
Anlisis Lxico En la fase de anlisis lxico se leen los caracteres del programa fuente
y se agrupan en cadenas que representan los componentes lxicos.
Cada componente lxico es una secuencia lgicamente coherente de
caracteres relativa a un identificador, una palabra reservada, un
operador o un carcter de puntuacin. A la secuencia de caracteres
que representa un componente lxico se le llama lexema (o con su
nombre en ingls token). En el caso de los identificadores creados por
el programador no solo se genera un componente lxico, sino que se
genera otro lexema en la tabla de smbolos.
Anlisis
En esta fase, los componentes lxicos se agrupan en frases
Sintctico
gramaticales que el compilador utiliza para sintetizar la salida.
Anlisis
La fase de anlisis semntico se intenta detectar instrucciones que
Semntico
tengan la estructura sintctica correcta, pero que no tengan significado
para la operacin implicada.
Generacin de Algunos compiladores generan una representacin intermedia
cdigo
explcita del programa fuente, una vez que se han realizado las fases
Intermedio
de anlisis. Se puede considerar esta operacin intermedia como un
subprograma para una mquina abstracta. Esta representacin
intermedia debe tener dos propiedades importantes: debe ser fcil de
producir y fcil de traducir al programa objeto.
Optimizacin
En esta fase se trata de mejorar el cdigo intermedio, de modo que
de Cdigo
resulte un cdigo de mquina ms rpido de ejecutar.
Generacin de Esta constituye la fase final de un compilador. En ella se genera el
Cdigo.
cdigo objeto que por lo general consiste en cdigo en lenguaje
mquina (cdigo relocalizable) o cdigo en lenguaje ensamblador.
Administrador Una tabla de smbolos es una estructura de datos que contiene un
de la tabla de registro por cada identificador. El registro incluye los campos para los
smbolos
atributos del identificador. El administrador de la tabla de smbolos se

Sergio Manuel Hernndez Chi

1.1.2 el proceso de compilacin

Manejador de
errores.

rbol
sintctico

encarga de manejar los accesos a la tabla de smbolos, en cada una


de las etapas de compilacin de un programa.
En cada fase del proceso de compilacin es posibles encontrar
errores. Es conveniente que el tratamiento de los errores se haga de
manera centralizada a travs de un manejador de errores. De esta
forma podrn controlarse ms eficientemente los errores encontrados
en cada una de las fases de la compilacin de un programa.
Si el analizador sintctico genera un rbol sintctico, por lo regular se
construye como una estructura estndar basada en un puntero que se
asigna de manera dinmica a medida que se efecta el anlisis
sintctico. El rbol entero puede entonces conservarse como una
variable simple que apunta al nodo raz. Cada nodo en la estructura
es un registro cuyos campos representan la informacin recolectada
tanto por el analizador sintctico como, posteriormente, por el
analizador semntico

Sergio Manuel Hernndez Chi

1.1.2 el proceso de compilacin

Cdigo fuente

ANALISIS
Anlisis lxico

Anlisis sintctico

Anlisis semntico
Administrador
de la tabla de
smbolos

Generador de cdigo
intermedio

Optimizacin de cdigo

Generacin
del cdigo
SINTESIS
Cdigo maquina

Sergio Manuel Hernndez Chi

M
a
n
ej
o
d
e
e
rr
o
r
e
s

También podría gustarte