Universidad Americana
COMPILADORES
UNIDAD I
“Utilizando SMARTART, Listar las seis etapas del proceso de
compilación con ejemplos gráficos para cada etapa.”
Carrera: Ingeniería en Informática
Nombre y Apellido
- Juan José Benítez Arévalos
Asunción, Paraguay
2024
Etapa 1: Analizador léxico o escáner/rastreador
•Para esta etapa es importante mantener separados cada uno de los tokens(lexemas) y
almacenarlos en una tabla de símbolo. Aqui ya se puede detectar errores en las instrucciones
escritas incorrectamente. No solo en esta etapa se utiliza la tabla de símbolos, ya que la
información ahí contenida se va completando durante las siguientes fases.
Etapa 2: analizador sintáctico o Parser
•Se pretende ver la estructura de la frase, si los elementos tienen estructura de frase del
lenguaje. Aqui se pueden detectar errores en el orden o formato de las instrucciones en el
código fuente.
Etapa 3: Analizador semántico
•se analiza si la frase encontrada tiene significado. se usa la tabla de símbolos para conocer
los tipos de las variables y poder estudiar el significado semántico de la oración. Aquí se
pueden detectar errores con las operaciones según el tipo de variable en que operan (por
ejemplo, una resta sobre una cadena de texto seria un error)
Etapa 4: Generación de código intermedio
• Se traduce el programa fuente a otro lenguaje mas sencillo, en preparación para las siguientes
fases. Esto servirá Para: -facilitar el proceso de optimización - facilitar la traducción al
lenguaje de la maquina - compatibilización (el análisis será independiente de la
computadora física, con el consecuente ahorro económico.)
Etapa 5: Optimizador
• Intenta optimizar el programa en cuanto a variables utilizadas, bucles, saltos en memoria,
etc. Se reduce operaciones redundantes o innecesarias, y se procede a reordenar las
operaciones en la forma mas eficiente.
Etapa 6: Generación de código objeto
• Construye el programa objeto, o ejecutable. Se genera el código en lenguaje propio de la
plataforma en la que ejecutara el programa. La tabla de símbolos contendrá normalmente
información detallada sobre la memoria utilizada por las variables.