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
 
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO Guillermo Iván Prisco Pérez
 
Analisis lexico 1
Analisis lexico 1Analisis lexico 1
Analisis lexico 1perlallamas
 
Análisis Semántico con Cup
Análisis Semántico con CupAnálisis Semántico con Cup
Análisis Semántico con CupLAUNASA NOVENO B
 
Principles of-programming-languages-lecture-notes-
Principles of-programming-languages-lecture-notes-Principles of-programming-languages-lecture-notes-
Principles of-programming-languages-lecture-notes-Krishna Sai
 
MONITOREO Y AUDITORIA DE LAS BASE DE DATOS..pptx
MONITOREO Y AUDITORIA DE LAS BASE DE DATOS..pptxMONITOREO Y AUDITORIA DE LAS BASE DE DATOS..pptx
MONITOREO Y AUDITORIA DE LAS BASE DE DATOS..pptxLuciiAntonio
 
Lenguajes de programación.ppt
Lenguajes de programación.pptLenguajes de programación.ppt
Lenguajes de programación.pptEliezer Cordova
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un procesoi92almaa
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
TAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSTAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSxinithazangels
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.LuiS YmAY
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorjuan1993are
 

La actualidad más candente (20)

Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
 
Analisis lexico 1
Analisis lexico 1Analisis lexico 1
Analisis lexico 1
 
Investigacion errores lexicos
Investigacion errores lexicosInvestigacion errores lexicos
Investigacion errores lexicos
 
Análisis Semántico con Cup
Análisis Semántico con CupAnálisis Semántico con Cup
Análisis Semántico con Cup
 
Principles of-programming-languages-lecture-notes-
Principles of-programming-languages-lecture-notes-Principles of-programming-languages-lecture-notes-
Principles of-programming-languages-lecture-notes-
 
MONITOREO Y AUDITORIA DE LAS BASE DE DATOS..pptx
MONITOREO Y AUDITORIA DE LAS BASE DE DATOS..pptxMONITOREO Y AUDITORIA DE LAS BASE DE DATOS..pptx
MONITOREO Y AUDITORIA DE LAS BASE DE DATOS..pptx
 
Lenguajes de programación.ppt
Lenguajes de programación.pptLenguajes de programación.ppt
Lenguajes de programación.ppt
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un proceso
 
Compilador
CompiladorCompilador
Compilador
 
Analisis Semantico
Analisis Semantico Analisis Semantico
Analisis Semantico
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
TAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSTAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOS
 
Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
C++
C++C++
C++
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos
 

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)

Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
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
 

Último

Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
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
 
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
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdfCurso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdfcesar17lavictoria
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxYajairaMartinez30
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilDissneredwinPaivahua
 

Último (20)

Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
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
 
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
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdfCurso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptx
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civil
 

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