SlideShare una empresa de Scribd logo
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 lexico
Infomania pro
 
Compiladores, Analisis Lexico
Compiladores, Analisis LexicoCompiladores, Analisis Lexico
Compiladores, Analisis Lexico
Pedro Antonio Villalta (Pavillalta)
 
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 Lexico
FARIDROJAS
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
Yesenia Perez
 
AnáLisis LéXico
AnáLisis LéXicoAnáLisis LéXico
AnáLisis LéXico
Leopoldo Capa
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
bachispasaca
 
Cap4 compiladores
Cap4 compiladoresCap4 compiladores
Cap4 compiladores
CJAO
 
Automatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoAutomatas y compiladores analisis sintactico
Automatas y compiladores analisis sintactico
Germania Rodriguez
 
Analizador lexico
Analizador lexicoAnalizador lexico
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 Cup
LAUNASA 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 2
Universidad
 
Clase15
Clase15Clase15
Clase15
Areli Gómez
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cpp
Infomania pro
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
Bayo 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 mas
cesarkt
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
alexisdario
 

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 cruzados
DIEGO BAROJA
 
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
Julio César Álvarez Reyes
 
Proyecto de Sistemas de Información
Proyecto de Sistemas de InformaciónProyecto de Sistemas de Información
Proyecto de Sistemas de Información
Julio César Álvarez Reyes
 
SUJETO Y PREDICADO
SUJETO Y PREDICADOSUJETO Y PREDICADO
SUJETO Y PREDICADO
Esther Rodriguez
 
DiseñO De Compilador
DiseñO De CompiladorDiseñO De Compilador
DiseñO De Compilador
BigbossH
 
Cap2 compiladores
Cap2 compiladoresCap2 compiladores
Cap2 compiladores
CJAO
 
Cap4
Cap4Cap4
Cap4
CJAO
 

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

Análisis lexicográfico
Análisis lexicográficoAnálisis lexicográfico
Análisis lexicográfico
Eraclio Castillo Vidal
 
Análisis Sintáctico
Análisis SintácticoAnálisis Sintáctico
Análisis Sintáctico
Alex Echeverría
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
Silvestre Sosa
 
Analisis sintactico actividad 15
Analisis sintactico actividad 15Analisis sintactico actividad 15
Analisis sintactico actividad 15
AndresDvila
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semantico
Alvaro Cedeño
 
Lex yacc
Lex yaccLex 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
DanielRosero23
 
Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico
Alex Toapanta
 
Compiladores1
Compiladores1Compiladores1
Compiladores1
FARIDROJAS
 
Trabajo maxi unidad i
Trabajo maxi unidad iTrabajo maxi unidad i
Trabajo maxi unidad i
Eduardo Lastra Galeana
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabriel
Enrique Morales
 
Analisis lexico automatas i
Analisis lexico automatas iAnalisis lexico automatas i
Analisis lexico automatas i
rubiyanetvalenciavelazquez
 
Analisis semantico 06 06-2019 galarraga
Analisis semantico  06 06-2019 galarragaAnalisis semantico  06 06-2019 galarraga
Analisis semantico 06 06-2019 galarraga
Fabricio Galárraga
 
Capitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazarCapitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazar
MARCO POLO SILVA SEGOVIA
 
ANALISIS SEMANTICO
ANALISIS SEMANTICO ANALISIS SEMANTICO
ANALISIS SEMANTICO
MAURICIOANDRES39
 
Curso prog sist
Curso prog sistCurso prog sist
Curso prog sist
Jazmin Ayon
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
perlallamas
 
TABLA DE SIMBOLOS
TABLA DE SIMBOLOSTABLA DE SIMBOLOS
TABLA DE SIMBOLOS
Leopoldo Capa
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
JOSSELINEMARIBEL
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
Jhampier_Piedra
 

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ática
Calzada Meza
 
Calidad y validacion
Calidad y validacionCalidad y validacion
Calidad y validacion
Calzada 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_calzada1
Calzada Meza
 
Topicos ii calzada
Topicos ii calzadaTopicos ii calzada
Topicos ii calzada
Calzada Meza
 
Trabajoartemio
TrabajoartemioTrabajoartemio
Trabajoartemio
Calzada Meza
 
Wsdl bpel4ws chumpitaz
Wsdl bpel4ws chumpitazWsdl bpel4ws chumpitaz
Wsdl bpel4ws chumpitaz
Calzada Meza
 
Exposicion topicos avanzados_chumpitaz
Exposicion topicos avanzados_chumpitazExposicion topicos avanzados_chumpitaz
Exposicion topicos avanzados_chumpitaz
Calzada Meza
 
2 do trabajo-penas
2 do trabajo-penas2 do trabajo-penas
2 do trabajo-penas
Calzada Meza
 
1 er trabajo-penas1
1 er trabajo-penas11 er trabajo-penas1
1 er trabajo-penas1
Calzada Meza
 
Legislaci..
Legislaci..Legislaci..
Legislaci..
Calzada Meza
 
Topicos ii
Topicos iiTopicos ii
Topicos ii
Calzada Meza
 
Criptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujoCriptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujo
Calzada Meza
 
Planeamiento estregico
Planeamiento estregicoPlaneamiento estregico
Planeamiento estregico
Calzada Meza
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informática
Calzada Meza
 
Compiladores
CompiladoresCompiladores
Compiladores
Calzada 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 difusa
Calzada Meza
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
Calzada Meza
 
Inteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racionalInteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racional
Calzada Meza
 
Inteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racionalInteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racional
Calzada Meza
 
Inteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racionalInteligencia artificial piensa en forma racional
Inteligencia artificial piensa en forma racional
Calzada 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

C1B3RWALL La red de cooperación de Madrid.pptx
C1B3RWALL La red de cooperación de Madrid.pptxC1B3RWALL La red de cooperación de Madrid.pptx
C1B3RWALL La red de cooperación de Madrid.pptx
Guillermo Obispo San Román
 
trabajo _20240621_132119_0000.pdf-.......
trabajo _20240621_132119_0000.pdf-.......trabajo _20240621_132119_0000.pdf-.......
trabajo _20240621_132119_0000.pdf-.......
m15918387
 
UiPath and Dream to Succeed Student Account Session
UiPath and Dream to Succeed Student Account SessionUiPath and Dream to Succeed Student Account Session
UiPath and Dream to Succeed Student Account Session
DianaGray10
 
saludos en ingles de una forma mas facil y divertida
saludos en ingles de una forma mas facil y divertidasaludos en ingles de una forma mas facil y divertida
saludos en ingles de una forma mas facil y divertida
YendierMosqueralemus
 
trabajo 2do perido.pdf diagrama de pareto
trabajo 2do perido.pdf diagrama de paretotrabajo 2do perido.pdf diagrama de pareto
trabajo 2do perido.pdf diagrama de pareto
BRIANHERNANDEZVALENC
 
Estructuras básicas_ conceptos básicos de programación (1).pdf
Estructuras básicas_ conceptos básicos de programación  (1).pdfEstructuras básicas_ conceptos básicos de programación  (1).pdf
Estructuras básicas_ conceptos básicos de programación (1).pdf
AnaSofaRosmaya
 
Plantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptxPlantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptx
edwinedsonsuyo
 
Programas relacionados con la telemática.pdf
Programas relacionados con la telemática.pdfProgramas relacionados con la telemática.pdf
Programas relacionados con la telemática.pdf
DiegoPinillo
 
Uso de las Tics en la vida cotidiana.pptx
Uso de las Tics en la vida cotidiana.pptxUso de las Tics en la vida cotidiana.pptx
Uso de las Tics en la vida cotidiana.pptx
231485414
 
Trabajo de ten¡cnologia 11-2.......... (1).pdf
Trabajo de ten¡cnologia 11-2.......... (1).pdfTrabajo de ten¡cnologia 11-2.......... (1).pdf
Trabajo de ten¡cnologia 11-2.......... (1).pdf
ElizabethAcostaQuinc
 
Diagrama de pareto.docx trabajo de tecnologia
Diagrama de pareto.docx trabajo de tecnologiaDiagrama de pareto.docx trabajo de tecnologia
Diagrama de pareto.docx trabajo de tecnologia
RazeThefox
 
trabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jimtrabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jim
jhonyaicaterodriguez
 
Estructuras básicas_ conceptos básicos de programación (1).pdf
Estructuras básicas_ conceptos básicos de programación  (1).pdfEstructuras básicas_ conceptos básicos de programación  (1).pdf
Estructuras básicas_ conceptos básicos de programación (1).pdf
MaraJos722801
 
Herramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientasHerramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientas
yessicacarrillo16
 
El uso de las TIC's en la vida cotidiana
El uso de las TIC's en la vida cotidianaEl uso de las TIC's en la vida cotidiana
El uso de las TIC's en la vida cotidiana
231458066
 
informe de diagrama de pareto actividad segundo periodo 11-2
informe de diagrama de pareto actividad segundo periodo 11-2informe de diagrama de pareto actividad segundo periodo 11-2
informe de diagrama de pareto actividad segundo periodo 11-2
SofaNava1
 
Ejercicio Resuelto del Diagrama de Pareto Realizado por Hanna Isabella Garcia...
Ejercicio Resuelto del Diagrama de Pareto Realizado por Hanna Isabella Garcia...Ejercicio Resuelto del Diagrama de Pareto Realizado por Hanna Isabella Garcia...
Ejercicio Resuelto del Diagrama de Pareto Realizado por Hanna Isabella Garcia...
RazeThefox
 
Gobernanza con SharePoint Premium de principio a fin
Gobernanza con SharePoint Premium de principio a finGobernanza con SharePoint Premium de principio a fin
Gobernanza con SharePoint Premium de principio a fin
Juan Carlos Gonzalez
 
verbo to be en ingles una manera facil de aprenderlos
verbo to be en ingles una manera facil de aprenderlosverbo to be en ingles una manera facil de aprenderlos
verbo to be en ingles una manera facil de aprenderlos
YendierMosqueralemus
 
Ingeniería en Telemática y ejercicios.pdf
Ingeniería en Telemática y ejercicios.pdfIngeniería en Telemática y ejercicios.pdf
Ingeniería en Telemática y ejercicios.pdf
Camila301231
 

Último (20)

C1B3RWALL La red de cooperación de Madrid.pptx
C1B3RWALL La red de cooperación de Madrid.pptxC1B3RWALL La red de cooperación de Madrid.pptx
C1B3RWALL La red de cooperación de Madrid.pptx
 
trabajo _20240621_132119_0000.pdf-.......
trabajo _20240621_132119_0000.pdf-.......trabajo _20240621_132119_0000.pdf-.......
trabajo _20240621_132119_0000.pdf-.......
 
UiPath and Dream to Succeed Student Account Session
UiPath and Dream to Succeed Student Account SessionUiPath and Dream to Succeed Student Account Session
UiPath and Dream to Succeed Student Account Session
 
saludos en ingles de una forma mas facil y divertida
saludos en ingles de una forma mas facil y divertidasaludos en ingles de una forma mas facil y divertida
saludos en ingles de una forma mas facil y divertida
 
trabajo 2do perido.pdf diagrama de pareto
trabajo 2do perido.pdf diagrama de paretotrabajo 2do perido.pdf diagrama de pareto
trabajo 2do perido.pdf diagrama de pareto
 
Estructuras básicas_ conceptos básicos de programación (1).pdf
Estructuras básicas_ conceptos básicos de programación  (1).pdfEstructuras básicas_ conceptos básicos de programación  (1).pdf
Estructuras básicas_ conceptos básicos de programación (1).pdf
 
Plantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptxPlantilla carrier y tecnologia de TIGO.pptx
Plantilla carrier y tecnologia de TIGO.pptx
 
Programas relacionados con la telemática.pdf
Programas relacionados con la telemática.pdfProgramas relacionados con la telemática.pdf
Programas relacionados con la telemática.pdf
 
Uso de las Tics en la vida cotidiana.pptx
Uso de las Tics en la vida cotidiana.pptxUso de las Tics en la vida cotidiana.pptx
Uso de las Tics en la vida cotidiana.pptx
 
Trabajo de ten¡cnologia 11-2.......... (1).pdf
Trabajo de ten¡cnologia 11-2.......... (1).pdfTrabajo de ten¡cnologia 11-2.......... (1).pdf
Trabajo de ten¡cnologia 11-2.......... (1).pdf
 
Diagrama de pareto.docx trabajo de tecnologia
Diagrama de pareto.docx trabajo de tecnologiaDiagrama de pareto.docx trabajo de tecnologia
Diagrama de pareto.docx trabajo de tecnologia
 
trabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jimtrabajo monografico sobre el yandex .jim
trabajo monografico sobre el yandex .jim
 
Estructuras básicas_ conceptos básicos de programación (1).pdf
Estructuras básicas_ conceptos básicos de programación  (1).pdfEstructuras básicas_ conceptos básicos de programación  (1).pdf
Estructuras básicas_ conceptos básicos de programación (1).pdf
 
Herramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientasHerramientas para los abogados, 3 herramientas
Herramientas para los abogados, 3 herramientas
 
El uso de las TIC's en la vida cotidiana
El uso de las TIC's en la vida cotidianaEl uso de las TIC's en la vida cotidiana
El uso de las TIC's en la vida cotidiana
 
informe de diagrama de pareto actividad segundo periodo 11-2
informe de diagrama de pareto actividad segundo periodo 11-2informe de diagrama de pareto actividad segundo periodo 11-2
informe de diagrama de pareto actividad segundo periodo 11-2
 
Ejercicio Resuelto del Diagrama de Pareto Realizado por Hanna Isabella Garcia...
Ejercicio Resuelto del Diagrama de Pareto Realizado por Hanna Isabella Garcia...Ejercicio Resuelto del Diagrama de Pareto Realizado por Hanna Isabella Garcia...
Ejercicio Resuelto del Diagrama de Pareto Realizado por Hanna Isabella Garcia...
 
Gobernanza con SharePoint Premium de principio a fin
Gobernanza con SharePoint Premium de principio a finGobernanza con SharePoint Premium de principio a fin
Gobernanza con SharePoint Premium de principio a fin
 
verbo to be en ingles una manera facil de aprenderlos
verbo to be en ingles una manera facil de aprenderlosverbo to be en ingles una manera facil de aprenderlos
verbo to be en ingles una manera facil de aprenderlos
 
Ingeniería en Telemática y ejercicios.pdf
Ingeniería en Telemática y ejercicios.pdfIngeniería en Telemática y ejercicios.pdf
Ingeniería en Telemática y ejercicios.pdf
 

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)