Beruflich Dokumente
Kultur Dokumente
Diagrama de un traductor.
Estructura de un compilador.
Qu
es
un
compilador?
Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de
programacin a otro lenguaje de programacin.1 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:
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
Anlisis Sintctico.
En esta fase, los componentes lxicos se agrupan en frases gramaticales que el compilador utiliza para
sintetizar la salida.
Anlisis Semntico.
La fase de anlisis semntico se intenta detectar instrucciones que tengan la estructura sintctica
correcta, pero que no tengan significado para la operacin implicada.
Generacin de cdigo Intermedio.
Algunos compiladores generan una representacin intermedia explcita del programa fuente, una vez
que se han realizado las fases 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 de Cdigo.
En esta fase se trata de mejorar el cdigo intermedio, de modo que resulte un cdigo de mquina ms
rpido de ejecutar.
Generacin de Cdigo.
Esta constituye la fase final de un compilador. En ella se genera el cdigo objeto que por lo general
consiste en cdigo en lenguaje mquina (cdigo relocalizable) o cdigo en lenguaje ensamblador.
Administrador de la tabla de smbolos.
Una tabla de smbolos es una estructura de datos que contiene un registro por cada identificador. El
registro incluye los campos para los atributos del identificador. El administrador de la tabla de
smbolos se encarga de manejar los accesos a la tabla de smbolos, en cada una de las etapas de
compilacin de un programa.
Manejador de errores.
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.
Este es el proceso standard que un compilador comercial sigue para cualquier programa.
Que es un intrprete?
Es un programa informtico capaz de analizar y ejecutar otros programas. Los intrpretes se
diferencian de los compiladores o de los ensambladores en que mientras estos traducen un programa
desde su descripcin en un lenguaje de programacin al cdigo de mquina del sistema, los
intrpretes slo realizan la traduccin a medida que sea necesaria, tpicamente, instruccin por
instruccin,
y
normalmente
no
guardan
el
resultado
de
dicha
traduccin.
Usando un intrprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas
sumamente diferentes (ejemplo. una PC y una PlayStation 4). Usando un compilador, un solo archivo
fuente puede producir resultados iguales solo si es compilado a distintos ejecutables especficos a cada
sistema.
Diagrama de un compilador:
Diagrama de un intrprete:
Que es un token?
Un token o tambin llamado componente lxico es una cadena de caracteres que tiene un significado
coherente en cierto lenguaje de programacin. Ejemplos de tokens podran ser palabras clave (if, else,
while, int, ...), identificadores, nmeros, signos, o un operador de varios caracteres, (por ejemplo, :=).
Son los elementos ms bsicos sobre los cuales se desarrolla toda traduccin de un programa, surgen
en la primera fase, llamada anlisis lxico, sin embargo se siguen utilizando en las siguientes fases
(anlisis sintctico y anlisis semntico) antes de perderse en la fase de sntesis.