PDF de programación - Procesadores de Lenguajes - Tema 1. Introducción

Imágen de pdf Procesadores de Lenguajes - Tema 1. Introducción

Procesadores de Lenguajes - Tema 1. Introduccióngráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 20 de Noviembre del 2017)
824 visualizaciones desde el 20 de Noviembre del 2017
315,3 KB
14 paginas
Creado hace 20a (22/10/2003)
UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA

Escuela Técnica Superior de Ingeniería Informática

Procesadores de Lenguajes

Tema 1
Tema 1

Introducción
Introducción

Javier Vélez Reyes
[email protected]

Javier Vélez Reyes [email protected]

Objetivos del Tema
Objetivos del Tema

Aprender qué es un compilador
(cid:132)(cid:132) Aprender qué es un compilador
Conocer los tipos de compiladores que existen
(cid:132)(cid:132) Conocer los tipos de compiladores que existen
Conocer la diferencia entre compilador e interprete
(cid:132)(cid:132) Conocer la diferencia entre compilador e interprete
Familiarizarse con el contexto de un compilador
(cid:132)(cid:132) Familiarizarse con el contexto de un compilador
Aprender la estructura y fases de un compilador
(cid:132)(cid:132) Aprender la estructura y fases de un compilador

1

Javier Vélez Reyes [email protected]

Índice General
Índice General

¿Qué es un compilador?
(cid:132)(cid:132) ¿Qué es un compilador?
Compiladores e interpretes
(cid:132)(cid:132) Compiladores e interpretes
Contexto de un compilador
(cid:132)(cid:132) Contexto de un compilador
Tipos de compiladores
(cid:132)(cid:132) Tipos de compiladores
Estructura de un compilador
(cid:132)(cid:132) Estructura de un compilador

Javier Vélez Reyes [email protected]

¿Qué es un compilador?
¿Qué es un compilador?

Traductor
Traductor

Lenguaje
objeto

Alto Nivel

Traductor

Lenguaje
fuente

Lenguaje
objeto

Bajo Nivel

Compilador

Un compilador es un programa que lee un programa
Un compilador es un programa que lee un programa
escrito en lenguaje fuente, y lo traduce a un lenguaje
escrito en lenguaje fuente, y lo traduce a un lenguaje
objeto de bajo nivel. Además generará una lista de los
objeto de bajo nivel. Además generará una lista de los
posibles errores que tenga el programa fuente
posibles errores que tenga el programa fuente

2

Javier Vélez Reyes [email protected]

Índice General
Índice General

¿Qué es un compilador?
(cid:132)(cid:132) ¿Qué es un compilador?
Compiladores e interpretes
(cid:132)(cid:132) Compiladores e interpretes
Contexto de un compilador
(cid:132)(cid:132) Contexto de un compilador
Tipos de compiladores
(cid:132)(cid:132) Tipos de compiladores
Estructura de un compilador
(cid:132)(cid:132) Estructura de un compilador

Javier Vélez Reyes [email protected]

Compiladores e interpretes
Compiladores e interpretes

Compiladores
(cid:132)(cid:132) Compiladores
Una única compilación
(cid:132)(cid:132) Una única compilación
Mayor velocidad ejecución
(cid:132)(cid:132) Mayor velocidad ejecución
Mayor detalle de errores
(cid:132)(cid:132) Mayor detalle de errores
Mayor consumo de memoria
(cid:132)(cid:132) Mayor consumo de memoria
Interpretes
(cid:132)(cid:132) Interpretes
Interpretación en ejecución
(cid:132)(cid:132) Interpretación en ejecución
Menor velocidad ejecución
(cid:132)(cid:132) Menor velocidad ejecución
Menor detalle de errores
(cid:132)(cid:132) Menor detalle de errores
Menor consumo de memoria
(cid:132)(cid:132) Menor consumo de memoria

3

Javier Vélez Reyes [email protected]

Índice General
Índice General

¿Qué es un compilador?
(cid:132)(cid:132) ¿Qué es un compilador?
Compiladores e interpretes
(cid:132)(cid:132) Compiladores e interpretes
Contexto de un compilador
(cid:132)(cid:132) Contexto de un compilador
Tipos de compiladores
(cid:132)(cid:132) Tipos de compiladores
Estructura de un compilador
(cid:132)(cid:132) Estructura de un compilador

Javier Vélez Reyes [email protected]

Contexto de un compilador
Contexto de un compilador

Contexto
(cid:132)(cid:132) Contexto
Precompilador
(cid:132)(cid:132) Precompilador
Compilador
(cid:132)(cid:132) Compilador
Enlazador (montador)
(cid:132)(cid:132) Enlazador (montador)
Depurador
(cid:132)(cid:132) Depurador
Ensamblador
(cid:132)(cid:132) Ensamblador

.C.C

.H.H

Precompilador
Precompilador

.C.C

.ASM.ASM

Compilador
Compilador

Ensamblador
Ensamblador

.DLL
.DLL

.OBJ
.OBJ

.OBJ
.OBJ

.OBJ
.OBJ

WIN.EXE
WIN.EXE

.LIB.LIB

Enlazador
Enlazador

.EXE
.EXE

Ensamblador
Ensamblador

.ASM.ASM

.EXE
.EXE

4

Javier Vélez Reyes [email protected]

Índice General
Índice General

¿Qué es un compilador?
(cid:132)(cid:132) ¿Qué es un compilador?
Compiladores e interpretes
(cid:132)(cid:132) Compiladores e interpretes
Contexto de un compilador
(cid:132)(cid:132) Contexto de un compilador
Tipos de compiladores
(cid:132)(cid:132) Tipos de compiladores
Estructura de un compilador
(cid:132)(cid:132) Estructura de un compilador

Javier Vélez Reyes [email protected]

Tipos de compiladores
Tipos de compiladores

Tipos de compiladores
(cid:132)(cid:132) Tipos de compiladores
Ensamblador
(cid:132)(cid:132) Ensamblador
Compilador cruzado
(cid:132)(cid:132) Compilador cruzado
Compilador con montador
(cid:132)(cid:132) Compilador con montador
Autocompilador
(cid:132)(cid:132) Autocompilador
Metacompilador
(cid:132)(cid:132) Metacompilador
Descompilador
(cid:132)(cid:132) Descompilador

5

Javier Vélez Reyes [email protected]

Índice General
Índice General

¿Qué es un compilador?
(cid:132)(cid:132) ¿Qué es un compilador?
Compiladores e interpretes
(cid:132)(cid:132) Compiladores e interpretes
Contexto de un compilador
(cid:132)(cid:132) Contexto de un compilador
Tipos de compiladores
(cid:132)(cid:132) Tipos de compiladores
Estructura de un compilador
(cid:132)(cid:132) Estructura de un compilador

Javier Vélez Reyes [email protected]

Estructura de un compilador
Estructura de un compilador

Independencia
física

Análisis Léxico
Análisis Léxico

Análisis Sintáctico
Análisis Sintáctico

Análisis Semántico
Análisis Semántico

Tabla de
símbolos

Generación de código
Generación de código

intermedio
intermedio

Gestión de

errores

Optimización de código
Optimización de código

intermedio
intermedio

Generación de código
Generación de código

objeto
objeto

Dependencia
física

6

Javier Vélez Reyes [email protected]

Tipos de tokens
(cid:132)(cid:132) Tipos de tokens
Específicos
(cid:132)(cid:132) Específicos
Palabras reservadas
(cid:132)(cid:132) Palabras reservadas
Separadores
(cid:132)(cid:132) Separadores
Operadores
(cid:132)(cid:132) Operadores
No específicos
(cid:132)(cid:132) No específicos
Identificadores
(cid:132)(cid:132) Identificadores
Constantes
(cid:132)(cid:132) Constantes
Etiquetas
(cid:132)(cid:132) Etiquetas

Análisis léxico I
Análisis léxico I
El analizador léxico o scanner, transforma
El analizador léxico o scanner, transforma
El analizador léxico o scanner, transforma
el texto fuente en una secuencia a
el texto fuente en una secuencia a
el texto fuente en una secuencia a
ordenada de elemento léxicamente
ordenada de elemento léxicamente
ordenada de elemento léxicamente
válidos (tokens)
válidos (tokens)
válidos (tokens)

e
l
i
h
w

G. Errores
G. Errores

Estructura
(cid:132)(cid:132) Estructura
(cid:132)(cid:132) TipoTipo
Lexema
(cid:132)(cid:132) Lexema

Tabla Símbolos
Tabla Símbolos

Análisis Léxico (G3)
Análisis Léxico (G3)

[RESERVEDWORD, WHILE]

Javier Vélez Reyes [email protected]

Tipos de tokens
(cid:132)(cid:132) Tipos de tokens
Específicos
(cid:132)(cid:132) Específicos
Palabras reservadas
(cid:132)(cid:132) Palabras reservadas
Separadores
(cid:132)(cid:132) Separadores
Operadores
(cid:132)(cid:132) Operadores
No específicos
(cid:132)(cid:132) No específicos
Identificadores
(cid:132)(cid:132) Identificadores
Constantes
(cid:132)(cid:132) Constantes
Etiquetas
(cid:132)(cid:132) Etiquetas

Análisis léxico II
Análisis léxico II
El analizador léxico o scanner, transforma
El analizador léxico o scanner, transforma
El analizador léxico o scanner, transforma
el texto fuente en una secuencia a
el texto fuente en una secuencia a
el texto fuente en una secuencia a
ordenada de elemento léxicamente
ordenada de elemento léxicamente
ordenada de elemento léxicamente
válidos (tokens)
válidos (tokens)
válidos (tokens)

e
l
i
w

G. Errores
G. Errores

Error 1

Estructura
(cid:132)(cid:132) Estructura
(cid:132)(cid:132) TipoTipo
Lexema
(cid:132)(cid:132) Lexema

Tabla Símbolos
Tabla Símbolos

Análisis Léxico (G3)
Análisis Léxico (G3)

1 Los errores léxicos son difíciles de
detectar y suelen delegarse en el análisis
sintáctico

7

Javier Vélez Reyes [email protected]

Tipos de tokens
(cid:132)(cid:132) Tipos de tokens
Específicos
(cid:132)(cid:132) Específicos
Palabras reservadas
(cid:132)(cid:132) Palabras reservadas
Separadores
(cid:132)(cid:132) Separadores
Operadores
(cid:132)(cid:132) Operadores
No específicos
(cid:132)(cid:132) No específicos
Identificadores
(cid:132)(cid:132) Identificadores
Constantes
(cid:132)(cid:132) Constantes
Etiquetas
(cid:132)(cid:132) Etiquetas

Análisis léxico III
Análisis léxico III
El analizador léxico o scanner, transforma
El analizador léxico o scanner, transforma
El analizador léxico o scanner, transforma
el texto fuente en una secuencia a
el texto fuente en una secuencia a
el texto fuente en una secuencia a
ordenada de elemento léxicamente
ordenada de elemento léxicamente
ordenada de elemento léxicamente
válidos (tokens)
válidos (tokens)
válidos (tokens)

d
a
d
e

G. Errores
G. Errores

Estructura
(cid:132)(cid:132) Estructura
(cid:132)(cid:132) TipoTipo
Lexema
(cid:132)(cid:132) Lexema

Tabla Símbolos
Tabla Símbolos

ID

Análisis Léxico (G3)
Análisis Léxico (G3)

[ID, “edad”]

Javier Vélez Reyes [email protected]

Definición
(cid:132)(cid:132) Definición

Análisis sintáctico I
Análisis sintáctico I

El analizador sintáctico o parser recibe los tokens
El analizador sintáctico o parser recibe los tokens
El analizador sintáctico o parser recibe los tokens
y comprueba su ordenación correcta. Genera un
y comprueba su ordenación correcta. Genera un
y comprueba su ordenación correcta. Genera un
árbol sintáctico
árbol sintáctico
árbol sintáctico

Funciones
(cid:132)(cid:132) Funciones
Guiar la traducción
(cid:132)(cid:132) Guiar la traducción
Gestión de errores
(cid:132)(cid:132) Gestión de errores
prelación de operadores
(cid:132)(cid:132
  • Links de descarga
http://lwp-l.com/pdf7605

Comentarios de: Procesadores de Lenguajes - Tema 1. Introducción (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad