Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

COMPILADORES

Taller de Compiladores
Patricio Lema G.

Mediante un organizador gráfico defina las fases de la compilación.

Qué operación realiza el análisis sintáctico.

Agrupa los tokens del programa fuente en frases gramaticales que el compilador usará en las
siguientes etapas.

A qué se refiere la gramática, la regla de producciones, símbolos terminales y no terminales.

 Gramática: La gramática permite generar cadenas a partir de un símbolo inicial y


aplicando reglas que indican como ciertas combinaciones de símbolos pueden ser
reemplazadas usando otras combinaciones de símbolos.

 Regla de producciones: Especifican cómo se pueden combinar los terminales y no


terminales para formar cadenas. Cada producción consta de un No terminal (símbolo
inicial), seguido por una flecha o símbolo de asignación, seguida por una cadena de no
terminales y terminales.
 Símbolos terminales: Símbolos básicos con que se forman las cadenas. Para un lenguaje
de programación, cada palabra clave/reservada es un terminal.

 Símbolos no terminales: los no terminales definen conjuntos de cadenas que


ayudan a definir el lenguaje generado por la gramática. Imponen una estructura
jerárquica sobre el lenguaje que es útil tanto para el análisis sintáctico como para
la traducción.
Defina un ejemplo de gramática.

Qué es un árbol de pearsing y coloque un ejemplo.

El árbol de parsing demuestra como la secuencia de tokens de entrada puede ser derivada a
partir de las reglas de una gramática.

A qué se entiende por generación de Código

Se traduce la representación intermedia del programa fuente en el código nativo de la máquina


objetivo. El código generado efectuará el chequeo de las reglas de semántica dinámica del
lenguaje, que no pudieron ser verificadas durante la compilación.
Qué es un árbol sintáctico.

En qué consiste el análisis semántico.

Analiza el significado del programa.


Chequea reglas que no pueden ser capturadas por la gramática, pero que pueden ser verificadas
en tiempo de compilación. Estas reglas corresponden a la semántica estática del lenguaje.
Ejemplos:
 Chequeo de tipos en expresiones aritméticas.
 Chequeo de tipo y número de parámetros en la llamada a una rutina.

Cómo se obtiene el código intermedio.

Representación del código fuente como un programa escrito para ser ejecutado en una máquina
abstracta.
 Posibles representaciones intermedias:
 Tercetos
 Cuartetos
 Polaca Inversa

Dentro de la compilación a que se refiere la optimización.

Transforma la representación actual del código en una nueva versión que logra el mismo
resultado más eficientemente.
 Pueden aplicarse optimizaciones en diferentes etapas de la compilación:
 Durante la creación de la representación intermedia,
 Durante la transformación de una representación intermedia en otra,
 Durante la traducción del código intermedio a la salida,
 Luego de generar la salida,
 E incluso durante la linkedición o la ejecución.
Presente un ejemplo de optimización de código.

Dentro del proceso de la compilación, qué es, para qué, y cómo se utiliza una tabla de
símbolos.

Es una estructura de datos que contiene un registro para cada identificador utilizado en el código
fuente, con campos que contienen información relevante para cada símbolo (atributos).
Cuando el Análisis Léxico detecta un token de tipo identificador, lo ingresa en la Tabla de
Símbolos.

 Durante la Generación de Código se ingresa información para los atributos de los


símbolos, y se usa esa información de diversas maneras.
 Durante la Generación de Código puede ser necesario incorporar nuevas entradas a la
Tabla de Símbolos.

You might also like