SlideShare una empresa de Scribd logo
1 de 19
Procesadores de Lenguajes
Tema 1: Introducción
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Índice
 Definición de compilador
 Tipos de compiladores
 Historia de los compiladores
 Estructura de un compilador
 Especificación de compiladores
 Aplicaciones de los compiladores
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Definición de compilador
 Traductor: Programa que toma como entrada
un texto escrito (llamado fuente) y da como
salida otro texto (llamado objeto).
 Compilador: Traductor cuyo fuente es un
lenguaje de alto nivel y cuyo objeto es un
lenguaje de bajo nivel.
 Interprete: Compilador que ejecuta al mismo
tiempo que traduce.
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Definición de compilador
 Ventajas de los compiladores frente a los
interpretes
– Solo se compilan una vez
– Ejecución más rápida
– Optimización de código e Información del error
más detallada.
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Definición de compilador
 Ventajas de los Interpretes frente a los
Compiladores
– Menor coste espacial
– Mayor interactividad en desarrollo
– Añadir código “en caliente”
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Tipos de Compiladores
 Ensamblador
 Compilador cruzado
 Compilador con montador
 Autocompilador
 Metacompilador
 Decompilador
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Historia de los compiladores
 ¿Qué fue primero el compilador o el programa?
 FORTRAN: Primer lenguaje de alto nivel
 ALGOL: Lenguaje estructurado en módulos
 Separación Front-End y Back-End para compilar
lenguajes en distintas máquinas
 Creación del lenguaje intermedio UNCOL
 Definición de las distintas fases de creación de
compiladores
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Estructura de un compilador
AnálisisLéxico
Gestíon de errores
Tabla de símbolos
AnálisisSemántico
AnálisisSintáctico
Generaciónde
CódigoIntermedio
Optimizaciónde
Códigointermedio
Generacióny
Optimizaciónde
códigofinal
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Estructura de un compilador
 Análisis sintáctico
– Comprueba los valores unitarios del programa
(tokens):
 Palabras reservadas(do, while, if, …)
 Palabras no especificas(identificadores, constantes)
– Formados por tipo y lexema
Int contador
Identificador = tipo
“contador” = lexema
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Estructura de un compilador
 Análisis Sintáctico
– Recibe los tokens del analizador léxico y
comprueba que están ordenados conforme a la
gramática
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Estructura de un compilador
 Análisis Semántico
– Comprueba la validez del programa
– Comprobación de tipos en operadores
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Estructura de un compilador
 Generación de código intermedio
– Codifica el lenguaje fuente en un lenguaje
intermedio entre el lenguaje objeto
– Permite la separación entre front-end y back-end
– Utilización de código de 3 direcciones (A=B+C)
– Instrucciones condicionales y saltos
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Estructura de un compilador
 Optimización de código intermedio
– Permite realizar mejoras en el código intermedio
– Eliminación de saltos consecutivos
– Factorizaciones
– Eliminar código inútil
– Optimización de bucles
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Estructura de un compilador
 Generación de código objeto
– Generar una secuencia de instrucciones en
código ensamblador o máquina a partir del código
intermedio
– A=B+C
 LOAD B
 ADD C
 STORE A
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Estructura de un compilador
 Tabla de símbolos
– Tabla donde se registran los identificadores,
constantes, funciones y otros objetos
especificados en el programa fuente
– El compilador desarrolla funciones comunes de
acceso a ella
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Estructura de un compilador
 Manejo de errores
– Mensajes de error que el compilador emite cuando
encuentra una inconsistencia en cualquiera de las fases de
compilación
– Normalmente en una compilación no se muestran todos los
errores producidos:
 Ocultación de otros errores
 Avalancha de errores
– Se puede
 Pararse al encontrar cualquier error
 Intentar recuperar todos los errores de una pasada
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Estructura de un compilador
Análisis léxico
Análisis sintáctico
Análisis semantico
Generación de código intermedio
Fuente
Optimización de código intermedio
Generación de código objeto
Optimización de código objeto
Código
Intermedio
Código
objeto
BACK-END
FRONT-END
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Especificación de un compilador
 Especificación léxica:
– Tokens mediante expresiones regulares
 Especificación sintáctica:
– Gramáticas independientes del contexto
 Especificación semántica:
– Lenguaje natural
Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas
Aplicaciones de las técnicas de
compilación
 Interfaces textuales
 Manejo de ficheros de texto estructurado
 Procesadores de texto
 Diseño e interpretación de lenguajes
 Gestión de bases de datos
 Procesamiento del lenguaje natural
 Traducción de formatos de ficheros
 Cálculo simbólico
 Reconocimiento sintáctico de formas

Más contenido relacionado

La actualidad más candente

Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraAlexandraMolinaSanchez
 
tipos de lenguaje de programación
tipos de lenguaje de programacióntipos de lenguaje de programación
tipos de lenguaje de programaciónpefrayo5
 
PALABRAS RESERVADAS DE C
PALABRAS RESERVADAS DE CPALABRAS RESERVADAS DE C
PALABRAS RESERVADAS DE CFernando Solis
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de SoftwareJiuseppe Flores
 
Programación de microcontrolador
Programación de microcontroladorProgramación de microcontrolador
Programación de microcontroladorVannesa Salazar
 
Lógica De La Programación Y Lenguaje de Pascal
Lógica De La Programación Y Lenguaje de PascalLógica De La Programación Y Lenguaje de Pascal
Lógica De La Programación Y Lenguaje de PascalFernando Galvez
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedioGuillermo
 
T1. Introducción a la Teoría de Lenguajes Formales.pptx
T1. Introducción a la Teoría de Lenguajes Formales.pptxT1. Introducción a la Teoría de Lenguajes Formales.pptx
T1. Introducción a la Teoría de Lenguajes Formales.pptxRaulCasillas9
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareJosé Antonio Sandoval Acosta
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEustakiu Padilla
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador SintacticoBayo Chicaiza
 
EstáNdares De Calidad Aplicadas Al Software
EstáNdares De Calidad Aplicadas Al SoftwareEstáNdares De Calidad Aplicadas Al Software
EstáNdares De Calidad Aplicadas Al Softwareeduardo89
 
Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Humano Terricola
 

La actualidad más candente (20)

Algoritmos Paralelos
Algoritmos ParalelosAlgoritmos Paralelos
Algoritmos Paralelos
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
tipos de lenguaje de programación
tipos de lenguaje de programacióntipos de lenguaje de programación
tipos de lenguaje de programación
 
PALABRAS RESERVADAS DE C
PALABRAS RESERVADAS DE CPALABRAS RESERVADAS DE C
PALABRAS RESERVADAS DE C
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de Software
 
Programación de microcontrolador
Programación de microcontroladorProgramación de microcontrolador
Programación de microcontrolador
 
Compiladores, Analisis Lexico
Compiladores, Analisis LexicoCompiladores, Analisis Lexico
Compiladores, Analisis Lexico
 
Herramientas case full informacion
Herramientas case full informacionHerramientas case full informacion
Herramientas case full informacion
 
Compiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de TransicionesCompiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de Transiciones
 
Lógica De La Programación Y Lenguaje de Pascal
Lógica De La Programación Y Lenguaje de PascalLógica De La Programación Y Lenguaje de Pascal
Lógica De La Programación Y Lenguaje de Pascal
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
 
Modelos risc y cisc
Modelos risc y ciscModelos risc y cisc
Modelos risc y cisc
 
T1. Introducción a la Teoría de Lenguajes Formales.pptx
T1. Introducción a la Teoría de Lenguajes Formales.pptxT1. Introducción a la Teoría de Lenguajes Formales.pptx
T1. Introducción a la Teoría de Lenguajes Formales.pptx
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
 
EstáNdares De Calidad Aplicadas Al Software
EstáNdares De Calidad Aplicadas Al SoftwareEstáNdares De Calidad Aplicadas Al Software
EstáNdares De Calidad Aplicadas Al Software
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1
 

Similar a Tema 1 introducción compilador

compiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladorescompiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladoresBEVERLYIGUARDIA
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesIsrael Castillo Cruz
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladoresbachispasaca
 
Grupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iGrupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iRossana Sosa
 
Introducción A Compiladores
Introducción A Compiladores Introducción A Compiladores
Introducción A Compiladores Nestor Traña
 
Compiladores Ex..ppt
Compiladores Ex..pptCompiladores Ex..ppt
Compiladores Ex..pptMarko Zapata
 
C:\documents and settings\clientea\mis documentos\compiladores
C:\documents and settings\clientea\mis documentos\compiladoresC:\documents and settings\clientea\mis documentos\compiladores
C:\documents and settings\clientea\mis documentos\compiladoresNancyandRegina317
 
Compilador Funcionamiento
Compilador FuncionamientoCompilador Funcionamiento
Compilador FuncionamientoKriz Kozlov
 
Repuesto de expo de programacion
Repuesto de expo de programacionRepuesto de expo de programacion
Repuesto de expo de programacionelizabethrmlm
 
1.5 GENERADORES DE CODIGO PARA COMPILADORES (COMPILADOR DE COMPILADORES)
1.5  GENERADORES  DE CODIGO  PARA COMPILADORES (COMPILADOR DE COMPILADORES)1.5  GENERADORES  DE CODIGO  PARA COMPILADORES (COMPILADOR DE COMPILADORES)
1.5 GENERADORES DE CODIGO PARA COMPILADORES (COMPILADOR DE COMPILADORES)elizabethrmlm
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1X3025990
 
G:\trabajo de informatica\compilador
G:\trabajo de informatica\compiladorG:\trabajo de informatica\compilador
G:\trabajo de informatica\compiladorfernandaduran
 
Los compiladores erika y carolina
Los compiladores erika y carolinaLos compiladores erika y carolina
Los compiladores erika y carolinaErika Flores
 

Similar a Tema 1 introducción compilador (20)

Introduccion
IntroduccionIntroduccion
Introduccion
 
compiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladorescompiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladores
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
Grupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iGrupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes i
 
H:\compiladores
H:\compiladoresH:\compiladores
H:\compiladores
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Introducción A Compiladores
Introducción A Compiladores Introducción A Compiladores
Introducción A Compiladores
 
Compiladores Ex..ppt
Compiladores Ex..pptCompiladores Ex..ppt
Compiladores Ex..ppt
 
C:\documents and settings\clientea\mis documentos\compiladores
C:\documents and settings\clientea\mis documentos\compiladoresC:\documents and settings\clientea\mis documentos\compiladores
C:\documents and settings\clientea\mis documentos\compiladores
 
Compilador Funcionamiento
Compilador FuncionamientoCompilador Funcionamiento
Compilador Funcionamiento
 
Resumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamachoResumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamacho
 
Universidad fermín toro
Universidad fermín toroUniversidad fermín toro
Universidad fermín toro
 
Repuesto de expo de programacion
Repuesto de expo de programacionRepuesto de expo de programacion
Repuesto de expo de programacion
 
1.5 GENERADORES DE CODIGO PARA COMPILADORES (COMPILADOR DE COMPILADORES)
1.5  GENERADORES  DE CODIGO  PARA COMPILADORES (COMPILADOR DE COMPILADORES)1.5  GENERADORES  DE CODIGO  PARA COMPILADORES (COMPILADOR DE COMPILADORES)
1.5 GENERADORES DE CODIGO PARA COMPILADORES (COMPILADOR DE COMPILADORES)
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1
 
G:\trabajo de informatica\compilador
G:\trabajo de informatica\compiladorG:\trabajo de informatica\compilador
G:\trabajo de informatica\compilador
 
Los compiladores erika y carolina
Los compiladores erika y carolinaLos compiladores erika y carolina
Los compiladores erika y carolina
 
Compiladores conceptos
Compiladores conceptosCompiladores conceptos
Compiladores conceptos
 
Compiladores
CompiladoresCompiladores
Compiladores
 

Último

Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfJessLeonelVargasJimn
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfCE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfssuserc34f44
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdfPPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdfZamiertCruzSuyo
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 
Cadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operacionesCadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operacionesal21510263
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
COMPONENTES DE LA VIA FERREA UAJMS - BOLIVIA
COMPONENTES DE LA VIA FERREA UAJMS - BOLIVIACOMPONENTES DE LA VIA FERREA UAJMS - BOLIVIA
COMPONENTES DE LA VIA FERREA UAJMS - BOLIVIARafaelPaco2
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
Fisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfFisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfJessLeonelVargasJimn
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfManual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfSandXmovex
 

Último (20)

Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdf
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfCE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdfPPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 
Cadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operacionesCadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operaciones
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
COMPONENTES DE LA VIA FERREA UAJMS - BOLIVIA
COMPONENTES DE LA VIA FERREA UAJMS - BOLIVIACOMPONENTES DE LA VIA FERREA UAJMS - BOLIVIA
COMPONENTES DE LA VIA FERREA UAJMS - BOLIVIA
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
Fisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfFisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdf
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfManual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
 

Tema 1 introducción compilador

  • 2. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Índice  Definición de compilador  Tipos de compiladores  Historia de los compiladores  Estructura de un compilador  Especificación de compiladores  Aplicaciones de los compiladores
  • 3. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Definición de compilador  Traductor: Programa que toma como entrada un texto escrito (llamado fuente) y da como salida otro texto (llamado objeto).  Compilador: Traductor cuyo fuente es un lenguaje de alto nivel y cuyo objeto es un lenguaje de bajo nivel.  Interprete: Compilador que ejecuta al mismo tiempo que traduce.
  • 4. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Definición de compilador  Ventajas de los compiladores frente a los interpretes – Solo se compilan una vez – Ejecución más rápida – Optimización de código e Información del error más detallada.
  • 5. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Definición de compilador  Ventajas de los Interpretes frente a los Compiladores – Menor coste espacial – Mayor interactividad en desarrollo – Añadir código “en caliente”
  • 6. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Tipos de Compiladores  Ensamblador  Compilador cruzado  Compilador con montador  Autocompilador  Metacompilador  Decompilador
  • 7. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Historia de los compiladores  ¿Qué fue primero el compilador o el programa?  FORTRAN: Primer lenguaje de alto nivel  ALGOL: Lenguaje estructurado en módulos  Separación Front-End y Back-End para compilar lenguajes en distintas máquinas  Creación del lenguaje intermedio UNCOL  Definición de las distintas fases de creación de compiladores
  • 8. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Estructura de un compilador AnálisisLéxico Gestíon de errores Tabla de símbolos AnálisisSemántico AnálisisSintáctico Generaciónde CódigoIntermedio Optimizaciónde Códigointermedio Generacióny Optimizaciónde códigofinal
  • 9. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Estructura de un compilador  Análisis sintáctico – Comprueba los valores unitarios del programa (tokens):  Palabras reservadas(do, while, if, …)  Palabras no especificas(identificadores, constantes) – Formados por tipo y lexema Int contador Identificador = tipo “contador” = lexema
  • 10. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Estructura de un compilador  Análisis Sintáctico – Recibe los tokens del analizador léxico y comprueba que están ordenados conforme a la gramática
  • 11. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Estructura de un compilador  Análisis Semántico – Comprueba la validez del programa – Comprobación de tipos en operadores
  • 12. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Estructura de un compilador  Generación de código intermedio – Codifica el lenguaje fuente en un lenguaje intermedio entre el lenguaje objeto – Permite la separación entre front-end y back-end – Utilización de código de 3 direcciones (A=B+C) – Instrucciones condicionales y saltos
  • 13. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Estructura de un compilador  Optimización de código intermedio – Permite realizar mejoras en el código intermedio – Eliminación de saltos consecutivos – Factorizaciones – Eliminar código inútil – Optimización de bucles
  • 14. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Estructura de un compilador  Generación de código objeto – Generar una secuencia de instrucciones en código ensamblador o máquina a partir del código intermedio – A=B+C  LOAD B  ADD C  STORE A
  • 15. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Estructura de un compilador  Tabla de símbolos – Tabla donde se registran los identificadores, constantes, funciones y otros objetos especificados en el programa fuente – El compilador desarrolla funciones comunes de acceso a ella
  • 16. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Estructura de un compilador  Manejo de errores – Mensajes de error que el compilador emite cuando encuentra una inconsistencia en cualquiera de las fases de compilación – Normalmente en una compilación no se muestran todos los errores producidos:  Ocultación de otros errores  Avalancha de errores – Se puede  Pararse al encontrar cualquier error  Intentar recuperar todos los errores de una pasada
  • 17. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Estructura de un compilador Análisis léxico Análisis sintáctico Análisis semantico Generación de código intermedio Fuente Optimización de código intermedio Generación de código objeto Optimización de código objeto Código Intermedio Código objeto BACK-END FRONT-END
  • 18. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Especificación de un compilador  Especificación léxica: – Tokens mediante expresiones regulares  Especificación sintáctica: – Gramáticas independientes del contexto  Especificación semántica: – Lenguaje natural
  • 19. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas Aplicaciones de las técnicas de compilación  Interfaces textuales  Manejo de ficheros de texto estructurado  Procesadores de texto  Diseño e interpretación de lenguajes  Gestión de bases de datos  Procesamiento del lenguaje natural  Traducción de formatos de ficheros  Cálculo simbólico  Reconocimiento sintáctico de formas