Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Diagrama con los elementos de un compilador y sus fases, Guías, Proyectos, Investigaciones de Teoría de Lenguajes Formales para Autómatas

Diagrama con los elementos de un compilador y sus fases como una escena en donde se ejemplifiquen sus funciones.

Tipo: Guías, Proyectos, Investigaciones

2020/2021

A la venta desde 09/04/2022

LuisDxl
LuisDxl 🇲🇽

4.9

(7)

18 documentos

1 / 2

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
P1U1A2F2 Fases del
compilador
Alumno Matricula
Rosa Margarita Caamal Chuc 6227
Leandro Santiago Tun Perera 6231
Alison Francisco Miguel Acosta Uc 6243
Luis Enrique Canche Balam 6228
INSTITUTO TECNOLÓGICO SUPERIOR DE CALKINÍ EN EL
ESTADO DE CAMPECHE
LENGUAJES Y AUTOMATAS
Docente: JOSE ALFONSO CUEVAS BACAB
P1U1A2F2 Fases del compilador: Realiza un diorama con los
elementos de un compilador y sus fases como una escena en donde
se ejemplifiquen sus funciones.
Carrera: Ingeniería en Sistemas Computacionales.
Fecha: 27/Marzo/2020
pf2

Vista previa parcial del texto

¡Descarga Diagrama con los elementos de un compilador y sus fases y más Guías, Proyectos, Investigaciones en PDF de Teoría de Lenguajes Formales para Autómatas solo en Docsity!

P1U1A2F2 Fases del

compilador

Alumno Matricula

Rosa Margarita Caamal Chuc 6227

Leandro Santiago Tun Perera 6231

Alison Francisco Miguel Acosta Uc 6243

Luis Enrique Canche Balam 6228

INSTITUTO TECNOLÓGICO SUPERIOR DE CALKINÍ EN EL

ESTADO DE CAMPECHE

LENGUAJES Y AUTOMATAS

Docente: JOSE ALFONSO CUEVAS BACAB

P1U1A2F2 Fases del compilador: Realiza un diorama con los

elementos de un compilador y sus fases como una escena en donde

se ejemplifiquen sus funciones.

Carrera: Ingeniería en Sistemas Computacionales.

Fecha: 27/Marzo/

Lenguaje y Autómatas

Diagrama con los elementos de un compilador y sus fases LUIS ENRIQUE CANCHE BALAM (^2)

Código fuente

Análisis Léxico

Análisis Sintáctico

Análisis

Semántico

Generación de código
intermedio

independiente de la máquina^ Optimizador de código

Generador de

código

Optimizador de
código dependiente
de la máquina

Código objetivo Asi como todos los idiomas tiene un alfabeto de caracteres válidos (e.g: español, chino, japonés), cada lenguaje tiene su propio conjunto de caracteres aceptados. Algunos lenguajes tienen un alfabeto muy reducido como brainfuck que consta de solo 8 caracteres, hasta los más extensos y conocidos como java, python o javascript. Esta fase que le sigue al análisis léxico, la llamamos Análisis sintáctico o en ingles parsing o como muchos programadores le dicen parseo (aunque según la RAE no existe tal vocablo… aun) En esta fase se toma el conjunto de tokens producidos por la fase de análisis léxico y se genera un árbol de sintaxis, luego este se revisa de acuerdo a la gramática formal del lenguaje definido y se verifica que las expresiones construidas por el arreglo de tokens sean sintacticamente correctos. El análisis semántico valida si el árbol sintáctico construido concuerda con las reglas del lenguaje formal. Por ejemplo, asignaciones de valores entre tipos de datos que son compatibles. En esta fase también es muy necesario mantener un control de los identificadores con sus respectivos tipos y expresiones, por ejemplo si una variable es asignada sin haber sido declarada, y produce como salida un árbol de sintaxis anotado. Después de haber conducido el análisis semántico el compilador genera un código intermedio entre el código fuente y el el código de la maquina objetivo (unos y ceros). Este representa un programa para una máquina abstracta. Esta en medio de un lenguaje de alto nivel y un lenguaje de máquina. Este código intermedio debe ser generado de tal manera que es fácilmente traducido a un legunaje de máquina de bajo nivel. En la fase de generación de código se toma la versión optimizada del código intermedio y se mapea al lenguaje de máquina objetivo. La generación de código traduce entonces el código intermedio en una secuencia reubicable de código de máquina, más tarde el enlazador del sistema operativo tomara estas instrucciones y les asignara un espacio en la memoria para así poder funcionar. La siguiente fase realiza una optimización del código intermedio generado. La optimización puede asumirse como algo que quita lineas de código innecesarias, y ordena una secuencia de declaraciones que aceleran la ejecución del programa sin desperdiciar recursos de CPU o memoria RAM. Tabla de Símbolos Es importante entender que la tabla de símbolos no es más que una estructura de datos que denominamos matriz ortogonal, que es una tabla con posiciones de memoria dinámicas sobre las cuales se puede realizar búsquedas y editar los valores de cada una de sus celdas. El compilador se vale de esta estructura de datos para almacenar identificadores, tipos y valores de las variables a lo largo de todo el proceso de compilación, de forma que sea fácil y rápido obtener cualquiera de las propiedades de un símbolo.