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

El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 

Último (20)

El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.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)