0% encontró este documento útil (0 votos)
34 vistas26 páginas

Clase 1 - Introducción A La Compilación

ORGA

Cargado por

garife2539
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
34 vistas26 páginas

Clase 1 - Introducción A La Compilación

ORGA

Cargado por

garife2539
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Día, Fecha: Lunes, 22/01/2024

Hora de inicio: 14:50

Organización de Lenguajes y Compiladores 1


Sección N
Walter Alexander Guerra Duque
Temas para la Clase de Hoy
Presentación
Programa del Curso y Ponderación de
Laboratorio

Conceptos Generales
Procesadores de Lenguaje, Intérpretes y
Compiladores

Compiladores
Fase de Análisis, Fase de Síntesis
Explicación
Presentación
Programa de Laboratorio y Ponderación
Conceptos Generales
Conceptos Generales

Procesador de Lenguaje
Es un Programa que puede leer un programa en un lenguaje
fuente y producir una salida.

Intérprete Compilador
Lee el código fuente y lo Lee el código fuente y lo traduce a
ejecuta directamente sin otro equivalente en otro lenguaje.
generar ningún código. Comúnmente a Lenguaje Máquina
Compilador

1. Analizar y Traducir 2. Ejecutar

Ejemplos:
C, C++, Golang, Rust
Intérprete

Analizar y Ejecutar

Ejemplos:
Javascript, Python, Ruby
Compilador Híbrido
Compila e Interpreta Ejemplo: Java
Fases del Compilador
Fases del Compilador
Análisis Léxico
Lee el flujo de caracteres que componen el
programa fuente y los agrupa en secuencias
significativas.
Análisis Sintáctico
Utiliza los componentes de los tokens
producidos por el analizador de léxico para
crear una representación intermedia en forma

Análisis Semántico
de árbol que describa la estructura gramatical
del flujo de tokens.
Utiliza el árbol sintáctico y la información en
la tabla de símbolos para comprobar la
consistencia semántica del programa
fuente con la definición del lenguaje
Generación de Código Intermedio
Después del análisis sintáctico y semántico del programa fuente, muchos
compiladores generan una representación intermedia similar al código máquina.
Esta representación intermedia debe ser fácil de producir y fácil de traducir.

Optimización de Código
Trata de mejorar el código intermedio, de manera que se produzca un mejor
código destino. Por lo general, mejor significa más rápido, pero pueden lograrse
otros objetivos, como un código más corto, o un código de destino que consuma
menos poder
Generación de Código
El generador de código recibe como entrada una
representación intermedia del programa fuente y la asigna
al lenguaje destino.
Tabla de Símbolos
La tabla de símbolos es una estructura de
datos que contiene un registro para cada
nombre de variable, con campos para los
atributos del nombre

Manejador de Errores
Detecta e informa de errores que se
produzcan durante la fase de análisis. Debe
generar mensajes significativos y reanudar
el análisis.
Fases del Intérprete
Fases del Compilador Híbrido
Fases del Compilador
Para Compi1

Fase de Análisis
- Análisis Léxico
- Análisis Sintáctico
- Análisis Semántico
Para Compi2

Fase de Síntesis
- Generador de Código Intermedio
- Optimizador de Código
- Generador de Código
¿Cómo se implementa?
Análisis Léxico

Programa fuente

Analizador Léxico
(JFLEX)

Lista de Tokens
Análisis Sintáctico

Analizador
Sintáctico
(CUP)

Árbol Sintáctico:
Estructura de Datos
Análisis Semántico

Analizador
Semántico
(JAVA)
¿Dudas?
Hable ahora o escriba en el Foro

También podría gustarte