SlideShare una empresa de Scribd logo
1 de 43
compilador Fases y los aspectos formales Curso: Compilador I Alumno: José Antonio Calzada Meza Unv. José Carlos Mariátegui
Índice  Ambiente de compilación, fases de un compilador.  Analizador Léxico, Analizador Sintáctico, análisis semántico, generación de código, tratamiento de errores  Aspectos formales, definiciones, alfabeto, símbolos, cadena de palabras, frase.  Gramática o Sintaxis, producciones, símbolos terminales, símbolos no terminales.  Gramática formal, árboles de derivación sintáctica
 Ambiente de compilación, fases de un compilador Preparación del ambiente Naturalmente, antes de que comience cualquier trabajo de migración, necesitas disponer de todas las herramientas y bibliotecas necesarias con las que compilar. En esta sección se explicará cómo recopilar el software y cómo configurar tu sistema para compilar y ejecutar aplicaciones con el entorno GNOME 2. fases de un compilador Análisis Léxico Análisis Sintáctico Análisis Semántico Generación de Código Intermedio Optimización de Código
 Analizador Léxico Programa Lenguaje Fuente Análisis Léxico (Token,  Lexemaa Mensaje de Error Lee los caracteres del programa fuente de izquierda a derecha, y los agrupa en tokens
Funciones del Analizador Léxico Convierte el programa fuente en una cadena de tokens ,[object Object]
Salta comentarios y espacios en blanco (tabuladores, saltos de línea...)
Tener el registro de la línea del archivo fuente que esta siendo analizada
Genera mensajes de error léxico, y se recupera del error
Convierte los valores literales al tipo que corresponda
Si la entrada debe obedecer a un formato, verifica elformato Ej. Fortran, Cobol
Tokens y Lexemas Token: ,[object Object]
Unidad léxica indivisible
Identifica una entidad lógica dentro del lenguaje
Incluyen: Palabras Reservadas, Constantes, Operadores,
Signos de Puntuación e IdentificadoresLexema: ,[object Object]
No hay correspondencia 1-1 entre token-lexema,[object Object]
Porque se divide el Análisis Léxicodel Sintáctico? ,[object Object]
Mejora la eficiencia del compilador:
El par ser trabaja con Tokens, no con caracteres
Uso de técnicas de buffers
La mayor parte del tiempo de compilación se usa en el análisis léxico (excluyendo la optimización)
Mayor portabilidad:
Así la las peculiaridades en el alfabeto de entrada
Ej. El conjunto de caracteres, representación de símbolos,[object Object]
El papel del analizador sintáctico Obtieneunacadena de tokens desde el analizadorléxico y verificaqueestacadenapueda ser generadapor la gramática del lenguaje de programación definido. Árbol de análisis sintáctico Token Analizador Sintáctico Programa Fuente Analizador Léxico ObtenToken()‏ Resto del análisis Tabla de Símbolos
El papel del analizador sintáctico Conceptualmente, el analizador sintáctico, a partir de cadenascorrectas de tokens, construye un arbol de análisis sintáctico quetransfiere a lasetapasposteriores del compilador.
El papel del analizador sintáctico De acuerdo a lo anterior, existen dos tipos de analizadoressintácticos: ,[object Object]
Bottom-Up.- Construyeárboles de análisis sintáctico a partir de lashojas y hacia la raiz.En ambos casos la entradaesexplorada de izquierda a derecha, un símbolo a la vez.
Manejo de erroressintácticos El analizador sintáctico debe ser capaz de reconocererroresqueimpidenformarfrasesgramaticalesválidasparanuestrolenguaje de programación. Ejemplos de erroressintácticostípicos son: ,[object Object]
Unasentenciacondicionalif con la ausencia de la palabra clave then en Pascal.,[object Object]
Recuperación a nivel de frase.- El analizadorintentaremplazar un prefijo de la entradarestanteporunacadenaquepermita al analizadorcontinuar (cambiaruna “,” por un “;”, insertar un “;”, etc.).,[object Object]
No puedes utilizar una GLC para describir que alguna palabra particulares aparezca dos veces en una cadena separada por un texto en medio.
Una versión abstracta del problema es:			{wcw | w  (a | b)* } declaración uso
¿Qué hace el análisis semántico? Verificaciones de varias clases, típicamente: ,[object Object]
Los tipos de las expresiones y la compatibilidad de las asignaciones.
Invocación de métodos compatibles con las declaraciones
etc …
Los requerimientos dependes del lenguaje.,[object Object]
 El programa traducido debe tener alta calidad:
 Uso efectivo de los recursos
 Correr eficientemente = “buen código” (generar la
traducción óptima es un problema indecidible)
 Producir código correcto,[object Object]

Más contenido relacionado

La actualidad más candente

Clase analisis lexico
Clase analisis lexicoClase analisis lexico
Clase analisis lexicoInfomania pro
 
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Videoconferencias UTPL
 
Analisis Lexico
Analisis LexicoAnalisis Lexico
Analisis LexicoFARIDROJAS
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladoresbachispasaca
 
Cap4 compiladores
Cap4 compiladoresCap4 compiladores
Cap4 compiladoresCJAO
 
Automatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoAutomatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoGermania Rodriguez
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
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
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.LuiS YmAY
 
Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Universidad
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppInfomania pro
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador SintacticoBayo Chicaiza
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico maryr_
 
Compiladores analizadores gramática y algo mas
Compiladores analizadores gramática y algo masCompiladores analizadores gramática y algo mas
Compiladores analizadores gramática y algo mascesarkt
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintacticoalexisdario
 

La actualidad más candente (20)

Clase analisis lexico
Clase analisis lexicoClase analisis lexico
Clase analisis lexico
 
Compiladores, Analisis Lexico
Compiladores, Analisis LexicoCompiladores, Analisis Lexico
Compiladores, Analisis Lexico
 
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
 
Analisis Lexico
Analisis LexicoAnalisis Lexico
Analisis Lexico
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
AnáLisis LéXico
AnáLisis LéXicoAnáLisis LéXico
AnáLisis LéXico
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
Cap4 compiladores
Cap4 compiladoresCap4 compiladores
Cap4 compiladores
 
Automatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoAutomatas y compiladores analisis sintactico
Automatas y compiladores analisis sintactico
 
Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Análisis Semántico con Cup
Análisis Semántico con CupAnálisis Semántico con Cup
Análisis Semántico con Cup
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2
 
Clase15
Clase15Clase15
Clase15
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cpp
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico
 
Compiladores analizadores gramática y algo mas
Compiladores analizadores gramática y algo masCompiladores analizadores gramática y algo mas
Compiladores analizadores gramática y algo mas
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 

Destacado

Arquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosArquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosDIEGO BAROJA
 
DiseñO De Compilador
DiseñO De CompiladorDiseñO De Compilador
DiseñO De CompiladorBigbossH
 
Cap2 compiladores
Cap2 compiladoresCap2 compiladores
Cap2 compiladoresCJAO
 
Cap4
Cap4Cap4
Cap4CJAO
 

Destacado (7)

Arquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosArquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzados
 
Proyecto de Sistemas de Información I
Proyecto de Sistemas de Información IProyecto de Sistemas de Información I
Proyecto de Sistemas de Información I
 
Proyecto de Sistemas de Información
Proyecto de Sistemas de InformaciónProyecto de Sistemas de Información
Proyecto de Sistemas de Información
 
SUJETO Y PREDICADO
SUJETO Y PREDICADOSUJETO Y PREDICADO
SUJETO Y PREDICADO
 
DiseñO De Compilador
DiseñO De CompiladorDiseñO De Compilador
DiseñO De Compilador
 
Cap2 compiladores
Cap2 compiladoresCap2 compiladores
Cap2 compiladores
 
Cap4
Cap4Cap4
Cap4
 

Similar a Compilador2

Similar a Compilador2 (20)

Análisis lexicográfico
Análisis lexicográficoAnálisis lexicográfico
Análisis lexicográfico
 
Análisis Sintáctico
Análisis SintácticoAnálisis Sintáctico
Análisis Sintáctico
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Analisis sintactico actividad 15
Analisis sintactico actividad 15Analisis sintactico actividad 15
Analisis sintactico actividad 15
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semantico
 
Lex yacc
Lex yaccLex yacc
Lex yacc
 
Taller de actividades de compiladores 06 06 2019
Taller de actividades de compiladores 06 06 2019Taller de actividades de compiladores 06 06 2019
Taller de actividades de compiladores 06 06 2019
 
Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico
 
Compiladores1
Compiladores1Compiladores1
Compiladores1
 
Trabajo maxi unidad i
Trabajo maxi unidad iTrabajo maxi unidad i
Trabajo maxi unidad i
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabriel
 
Analisis lexico automatas i
Analisis lexico automatas iAnalisis lexico automatas i
Analisis lexico automatas i
 
Analisis semantico 06 06-2019 galarraga
Analisis semantico  06 06-2019 galarragaAnalisis semantico  06 06-2019 galarraga
Analisis semantico 06 06-2019 galarraga
 
Capitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazarCapitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazar
 
ANALISIS SEMANTICO
ANALISIS SEMANTICO ANALISIS SEMANTICO
ANALISIS SEMANTICO
 
Curso prog sist
Curso prog sistCurso prog sist
Curso prog sist
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
TABLA DE SIMBOLOS
TABLA DE SIMBOLOSTABLA DE SIMBOLOS
TABLA DE SIMBOLOS
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
 

Más de Calzada Meza

Virus informática
Virus informáticaVirus informática
Virus informáticaCalzada Meza
 
Calidad y validacion
Calidad y validacionCalidad y validacion
Calidad y validacionCalzada Meza
 
Topicos de ingeneria_de_sistema_sii_calzada1
Topicos de ingeneria_de_sistema_sii_calzada1Topicos de ingeneria_de_sistema_sii_calzada1
Topicos de ingeneria_de_sistema_sii_calzada1Calzada Meza
 
Topicos ii calzada
Topicos ii calzadaTopicos ii calzada
Topicos ii calzadaCalzada Meza
 
Wsdl bpel4ws chumpitaz
Wsdl bpel4ws chumpitazWsdl bpel4ws chumpitaz
Wsdl bpel4ws chumpitazCalzada Meza
 
Exposicion topicos avanzados_chumpitaz
Exposicion topicos avanzados_chumpitazExposicion topicos avanzados_chumpitaz
Exposicion topicos avanzados_chumpitazCalzada Meza
 
2 do trabajo-penas
2 do trabajo-penas2 do trabajo-penas
2 do trabajo-penasCalzada Meza
 
1 er trabajo-penas1
1 er trabajo-penas11 er trabajo-penas1
1 er trabajo-penas1Calzada Meza
 
Criptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujoCriptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujoCalzada Meza
 
Planeamiento estregico
Planeamiento estregicoPlaneamiento estregico
Planeamiento estregicoCalzada Meza
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informáticaCalzada Meza
 
Universidad josé carlos mariátegui+logica difusa
Universidad josé carlos mariátegui+logica difusaUniversidad josé carlos mariátegui+logica difusa
Universidad josé carlos mariátegui+logica difusaCalzada Meza
 
Inteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racionalInteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racionalCalzada Meza
 
Inteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racionalInteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racionalCalzada Meza
 
Inteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racionalInteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racionalCalzada Meza
 

Más de Calzada Meza (20)

Virus informática
Virus informáticaVirus informática
Virus informática
 
Calidad y validacion
Calidad y validacionCalidad y validacion
Calidad y validacion
 
Topicos de ingeneria_de_sistema_sii_calzada1
Topicos de ingeneria_de_sistema_sii_calzada1Topicos de ingeneria_de_sistema_sii_calzada1
Topicos de ingeneria_de_sistema_sii_calzada1
 
Topicos ii calzada
Topicos ii calzadaTopicos ii calzada
Topicos ii calzada
 
Trabajoartemio
TrabajoartemioTrabajoartemio
Trabajoartemio
 
Wsdl bpel4ws chumpitaz
Wsdl bpel4ws chumpitazWsdl bpel4ws chumpitaz
Wsdl bpel4ws chumpitaz
 
Exposicion topicos avanzados_chumpitaz
Exposicion topicos avanzados_chumpitazExposicion topicos avanzados_chumpitaz
Exposicion topicos avanzados_chumpitaz
 
2 do trabajo-penas
2 do trabajo-penas2 do trabajo-penas
2 do trabajo-penas
 
1 er trabajo-penas1
1 er trabajo-penas11 er trabajo-penas1
1 er trabajo-penas1
 
Legislaci..
Legislaci..Legislaci..
Legislaci..
 
Topicos ii
Topicos iiTopicos ii
Topicos ii
 
Criptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujoCriptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujo
 
Planeamiento estregico
Planeamiento estregicoPlaneamiento estregico
Planeamiento estregico
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informática
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Universidad josé carlos mariátegui+logica difusa
Universidad josé carlos mariátegui+logica difusaUniversidad josé carlos mariátegui+logica difusa
Universidad josé carlos mariátegui+logica difusa
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Inteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racionalInteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racional
 
Inteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racionalInteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racional
 
Inteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racionalInteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racional
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 

Último (15)

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 

Compilador2

  • 1. compilador Fases y los aspectos formales Curso: Compilador I Alumno: José Antonio Calzada Meza Unv. José Carlos Mariátegui
  • 2. Índice Ambiente de compilación, fases de un compilador. Analizador Léxico, Analizador Sintáctico, análisis semántico, generación de código, tratamiento de errores Aspectos formales, definiciones, alfabeto, símbolos, cadena de palabras, frase. Gramática o Sintaxis, producciones, símbolos terminales, símbolos no terminales. Gramática formal, árboles de derivación sintáctica
  • 3. Ambiente de compilación, fases de un compilador Preparación del ambiente Naturalmente, antes de que comience cualquier trabajo de migración, necesitas disponer de todas las herramientas y bibliotecas necesarias con las que compilar. En esta sección se explicará cómo recopilar el software y cómo configurar tu sistema para compilar y ejecutar aplicaciones con el entorno GNOME 2. fases de un compilador Análisis Léxico Análisis Sintáctico Análisis Semántico Generación de Código Intermedio Optimización de Código
  • 4. Analizador Léxico Programa Lenguaje Fuente Análisis Léxico (Token, Lexemaa Mensaje de Error Lee los caracteres del programa fuente de izquierda a derecha, y los agrupa en tokens
  • 5.
  • 6. Salta comentarios y espacios en blanco (tabuladores, saltos de línea...)
  • 7. Tener el registro de la línea del archivo fuente que esta siendo analizada
  • 8. Genera mensajes de error léxico, y se recupera del error
  • 9. Convierte los valores literales al tipo que corresponda
  • 10. Si la entrada debe obedecer a un formato, verifica elformato Ej. Fortran, Cobol
  • 11.
  • 13. Identifica una entidad lógica dentro del lenguaje
  • 14. Incluyen: Palabras Reservadas, Constantes, Operadores,
  • 15.
  • 16.
  • 17.
  • 18. Mejora la eficiencia del compilador:
  • 19. El par ser trabaja con Tokens, no con caracteres
  • 20. Uso de técnicas de buffers
  • 21. La mayor parte del tiempo de compilación se usa en el análisis léxico (excluyendo la optimización)
  • 23. Así la las peculiaridades en el alfabeto de entrada
  • 24.
  • 25. El papel del analizador sintáctico Obtieneunacadena de tokens desde el analizadorléxico y verificaqueestacadenapueda ser generadapor la gramática del lenguaje de programación definido. Árbol de análisis sintáctico Token Analizador Sintáctico Programa Fuente Analizador Léxico ObtenToken()‏ Resto del análisis Tabla de Símbolos
  • 26. El papel del analizador sintáctico Conceptualmente, el analizador sintáctico, a partir de cadenascorrectas de tokens, construye un arbol de análisis sintáctico quetransfiere a lasetapasposteriores del compilador.
  • 27.
  • 28. Bottom-Up.- Construyeárboles de análisis sintáctico a partir de lashojas y hacia la raiz.En ambos casos la entradaesexplorada de izquierda a derecha, un símbolo a la vez.
  • 29.
  • 30.
  • 31.
  • 32. No puedes utilizar una GLC para describir que alguna palabra particulares aparezca dos veces en una cadena separada por un texto en medio.
  • 33. Una versión abstracta del problema es: {wcw | w  (a | b)* } declaración uso
  • 34.
  • 35. Los tipos de las expresiones y la compatibilidad de las asignaciones.
  • 36. Invocación de métodos compatibles con las declaraciones
  • 38.
  • 39. El programa traducido debe tener alta calidad:
  • 40. Uso efectivo de los recursos
  • 41. Correr eficientemente = “buen código” (generar la
  • 42. traducción óptima es un problema indecidible)
  • 43.
  • 45.
  • 46. Instrucciones de 3 direcciones
  • 47. Modos de direccionamiento simples
  • 48.
  • 49. Instrucciones de 2 direcciones
  • 50. Muchos modos de direccionamiento
  • 51.
  • 52. el tope de la pila
  • 53. Requiere muchas operaciones de intercambio y copia (swap, copy) Ejemplo: JVM (Java Virtual Machine)
  • 54. Selección de Instrucciones Si una instrucción de asignación de la forma x=y+z; Se traduce a: LD R0, y // R0 = y ADD R0, R0, z // R0 = R0+z ST x, R0 // x = R0 Como se traducen: a = b + c; d = a + c; a = a + 1; Que se puede optimizar? Cada instrucción de la máquina tiene un costo asociado
  • 55.
  • 56. Asignación: establecer la relación variable-registro
  • 57.
  • 58. Optimización Local Reducción usando Identidades Algebraicas: Ejemplo: a = b + c; b = b – d; c = c + d; d = b + c; Y se puede optimizar a: a = b + c; b = b – d; c = c + d; d = a;
  • 59. definiciones, alfabeto, símbolos, cadena de palabras, frase Aspectos formales
  • 60. Aspectos formales, definiciones, alfabeto, símbolos, cadena de palabras, frase Alfabeto: es un conjunto finito y no vacío de elementos llamados símbolos o letras. Una palabra o cadena sobre un alfabeto V es una cadena finita de símbolos del alfabeto. Notación: denota a una cadena de longitud 0, también conocida como palabra vacía. Vndenota al conjunto de todas las palabras de longitud n sobre V V denota al conjunto de todas las cadenas de cualquier longitud sobreV. V+ denota al conjunto de todas las cadenas de cualquier longitud sobre V, excepto la vacía. Un elemento de Vnes una cadena del tipo a1a2 : an donde cada ai2 V.
  • 61. Aspectos formales, definiciones, alfabeto, símbolos, cadena de palabras, frase Símbolos: Una tabla de símbolos es una estructura de datos que contiene un registro por cada identificador, con los campos para los atributos del identificador. La estructura de datos permite encontrar rápidamente el registro de cada identificador y almacenar o consultar rápidamente datos en un registroCuando el analizador léxico detecta un identificador en el programa fuente, el identificador se introduce en la tabla de símbolos. Sin embargo, normalmente los atributos de un identificador no se pueden determinar durante el análisis léxico. Por ejemplo, en una declaración en Pascal como: var posición, inicial, velocidad : real;
  • 62. Aspectos formales, definiciones, alfabeto, símbolos, cadena de palabras, frase Cadena o palabras: Secuencia finita de símbolos de un alfabeto. Ejemplo: XYZ, CASA son cadenas del alfabeto español y también del inglés pero XYZ no lo es del portugués. Frase: Secuencia de símbolos o cadenas. Ejemplos: Sobre el alfabeto español El río es azul María
  • 63. Gramática o Sintaxis Conjunto de reglas que definen si una frase forma parte del lenguaje (es decir si está correcta o no). Si la frase está correcta entonces será aceptada por el lenguaje. Ejemplos: Considerando las reglas sintácticas del español, frases aceptadas por el lenguaje español : El gato es negro Gato Negro Frases no aceptadas : Está robó el negro el gato
  • 64. Gramática o Sintaxis Para especificar las reglas de la gramática se usan las producciones. Producciones : Son las reglas que definen como generar frases válidas de un lenguaje. Tienen la forma: A -> B Se lee : A está definido por Bó A puede ser sustituido por B ó Bpuede derivarse deA. Normalmente se usan los símbolos -> y := para especificar la transformación que originará las unas variables
  • 65. Producciones : Una producción contiene: Un lado izquierdo (A) que representa la cadena que va a transformarse (Lo que se define). Un lado derecho (B) que representa la cadena resultante de la transformación (La definición). Ejemplo: Oración ->->-> Sujeto Verbo Predicado ó Oración ::= Sujeto Verbo Predicado N -> 10 ó N ::= 1
  • 66. Símbolos terminales : Son las cadenas que realmente aparecen en una frase. Nunca aparecen del lado izquierdo de una producción. Para la producción N -> 10 ; 10 es un símbolo terminal. La producción Oración -> Sujeto Verbo Predicado no tiene símbolos terminales T denota el conjunto de símbolos terminales de un lenguaje
  • 67. Símbolos no terminales : Conocidos también como categorías sintácticas, no pertenecen a T y deben ser definidos en una producción, es decir deben aparecer por lo menos una vez del lado izquierdo de una producción. Representan los estados intermedios en el proceso de generación de un lenguaje. en el proceso de generación de un lenguaje. La producción N -> 10 ; Define el símbolo no terminal N La producción Oración -> Sujeto Verbo Predicado Define el símbolo no terminal Oración como Sujeto seguido de un Verbo y luego de un Predicado
  • 68. Símbolos no terminales : N denota el conjunto de todos los símbolos no terminales del lenguaje. Para que el lenguaje esté bien definido es necesario que todos los símbolos no terminales tengan su definición en el conjunto de producciones. Podemos decir que un lenguaje L es el conjunto de todas las combinaciones de cadenas que se forman de acuerdo a las reglas gramaticales (conjunto de producciones del lenguaje). S denota el símbolo no terminal inicial, que representa el punto de partida de la gramática.
  • 69. El conjunto de producciones (P) define todas las reglas para formación de frases válidas del lenguaje y podemos considerarlo la Gramática de un lenguaje. Cualquier frase válida del lenguaje tiene que ser generada a través del uso de las producciones y se dice que pertenece al lenguaje. Una frase que no es generada por el uso de las producciones o es generada por la aplicación inválida de las producciones, se considera una frase inválida se dice que no pertenece al lenguaje.
  • 70. El conjunto de producciones (P) Se podría completar la definición del ejemplo anterior: Sujeto -> Perro Verbo -> Ladra Predicado -> Fuerte Podemos ahora decir que: T = { Perro, Ladra, Fuerte} N = { Oración, Sujeto, Verbo, Predicado } La frase Perro Ladra Fuerte pertenece al lenguaje La frase Ladra Perro Fuerte no pertenece al lenguaje
  • 71.
  • 72. N es el conjunto de no terminales
  • 73. P es el conjunto de produccionesP es el conjunto de producciones S ∈ N es el símbolo inicial Cada gramática G caracteriza (genera) un lenguaje, decimos por tanto que un lenguaje formal se asocia a una gramática: L(G) = L(T, N, P, S)
  • 74. Gramática Formal Sea G0 = (T, N, P, Cadena) donde T = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9} N = { Cadena } P = {Cadena -> Cadena + Cadena  Cadena - Cadena  0  1  2  3  4  5  6  7  8  9 } Frases válidas: 1 + 5 6 - 4 9
  • 75. ejemplo Sea G1 = (T, N, P, Entero) donde T = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9} N = { Entero, Signo, EnteroSinSigno, Digito} P = {Entero -> Signo EnteroSinSigno, Signo -> +  - , EnteroSinSigno-> EnteroSinSigno Digito Digito, Digito -> 0  1  2  3  4  5  6  7  8  9 } Frases válidas: +10
  • 76. ejemplo Sea G2= (T, N, P, Bloque) donde T = { Begin, End, C, ; } N = { Bloque, Cuerpo, Lista, Comando} P = {Bloque -> Begin Cuerpo End , Cuerpo -> Lista ε , Lista -> Lista; Comando Comando ,Comando -> C } Frases válidas: BeginEnd Begin C; C End
  • 77. Árboles de derivación o sintácticos Muestra gráficamente como desde el no terminal S se deriva una cadena del lenguaje. Para la producción inicial: A -> C D F La raíz del árbol sería A con tres hijos C, D y F de izquierda a derecha y luego cada símbolo no terminal ni debe ser sustuido (usando una producción cuyo lado izquierdo sea justamente ni). El proceso se repetirá en cada nodo del árbol hasta llegar a símbolos terminales (Hojas del árbol) A C D F
  • 78. Árboles de derivación Para G0 la frase 1 + 5 tiene el siguiente árbol de derivación
  • 79. Árboles de derivación Para G2 la frase Begin C; C End tiene el siguiente árbol de derivació
  • 80. Derivaciones Se dice que una cadena αn se puede derivar de α0 si y sólo si existe la secuencia de cadenas α0, α1, α2,.. Αn tal que cada αi puede derivarse directamente de αi-1 (existe αi-1 -> αi): α0 -> α1 -> α2 -> …. -> αi-1 -> αi -> … -> αn Podemos abreviar con el símbolo ->* conocido como cerradura transitiva reflexiva de -> α0 ->* αn (αi-1 -> αi , i = 1, 2, .., n)