SlideShare une entreprise Scribd logo
1  sur  20
Ángel Antonio Carvajal C. Jesús Antonio Hoyos Perdomo COMPILADOR SENCILLO DE UNA PASADA
COMPILADOR SENCILLO DE UNA PASADA Examina el código fuente una vez, generando el código o programa objeto.
ANALISIS LEXICO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Los espacios en blanco que separan los caracteres de estos componentes léxicos normalmente se eliminan durante el análisis léxico. La fase de análisis léxico lee los caracteres en el programa fuente y los agrupa en una cadena de componentes léxico en los que cada componente representa una secuencia lógicamente coherente de caracteres, como un identificador, una palabra clave (if, While, etc), un carácter de puntuación, o un operador de varios caracteres, como  := . La secuencia de caracteres que forma un componente léxico se denomina l exema  del componente  A ciertos componentes léxicos se les agregara un “valor léxico”. Así, cuando se encuentra un identificador como  velocidad,  el analizador léxico no solo genera un componente léxico, por ejemplo:  id,  sino que también introduce el lexema  velocidad  en la tabla de símbolos, si aun no estaba allí. El valor léxico asociado con esta aparición de  id  señala la entrada de la tabla de símbolos correspondiente a  velocidad.
En esta sección, se usaran id 1 , id 2  e  id 3 , para posición, inicial y velocidad, respectivamente, para enfatizar que la representación interna de un identificador es diferente de la secuencia de caracteres que forman el identificador. Por tanto, la representación  Posición:=  inicial  +  velocidad  *  60  después del análisis léxico queda sugerida por:  id 1  := id 2  +  id 3  *  60 Se deberían construir componentes léxicos para el operador de varios caracteres := y el numero 60, para reflejar su representación interna. En  id 1  := id 2  +  id 3  *  60  ya se introdujeron las fases segunda y tercera: los análisis sintáctico y semántico.
El análisis sintáctico impone una estructura jerárquica a la cadena de componentes léxicos, que se representara por medio de arboles sintácticos así:   Id 1 Id 2 Id 3 60 := + * a)
Una estructura de datos típica para el árbol sería la siguiente: := + * 1 Id 2 Id 3 Id 60 num
En la que un nodo interior es un registro con un campo para el operador y dos campos que contienen apuntadores a los registros de los hijos izquierdo y derecho. Una hoja es un registro con dos o mas campos, una para identificar el componente léxico de la hoja, y los otros para registrar información sobre el componente léxico. Se puede tener información adicional sobre las construcciones del lenguaje añadiendo mas campos a los registros de los nodos.
ANALISIS SINTACTICO También llamado  análisis jerárquico.  Este implica agrupar los componentes léxicos del programa fuente en frases gramaticales que el compilador utiliza para sintetizar la salida. Por lo general las frases gramaticales del programa fuente se representan mediante un árbol de análisis sintáctico como el de la siguiente figura:
Proposición de asignación Expresión Expresión Expresión Expresión Identificador Identificador Posición Inicial Velocidad 60 := + * Expresión Identificador Numero
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Las reglas a)  y  b)  son reglas básicas, mientras que la regla  c)  define expresiones en función de operadores aplicados a otras expresiones. Así, por la regla  a), inicial y velocidad son expresiones. Por la regla  b),  60 es una expresión, mientras que por la regla  c), primero podemos inferir que velocidad * 60 es una expresión, y finalmente, que inicial + velocidad * 60 también es una expresión.  De manera similar, muchos lenguajes definen recursivamente las proposiciones mediante reglas como:   Si Identificador 1  es un identificador y Expresion 1  es una expresión, entonces… Identificador 1  :=  Expresion 2  es una proposición Si Expresion 1  es una expresión y Proposicion 2  es una proposición, entonces… While ( expresión 1  ) do proposicion 2   If ( expresión 1  ) then proposicion 2  son proposiciones.
La división entre análisis léxico y análisis sintáctico es algo arbitraria. Generalmente se elige una división que simplifique la tarea completa del análisis. Un factor para determinar la división es si una construcción del lenguaje fuente es inherentemente recursiva o no. Las construcciones léxicas no requieren recursión, mientras que las construcciones sintácticas suelen requerirla. Las gramáticas independientes del contexto son una formalización de reglas recursivas que se pueden usar para guiar el análisis sintáctico.
Por ejemplo, no se requiere recursión para reconocer los identificadores, que suelen ser cadenas de letras y dígitos que comienzan con una letra. Normalmente, se reconocen los identificadores por el simple examen del flujo de entrada, esperando hasta encontrar un carácter que no sea ni letra ni digito, y agrupando después todas las letras y dígitos encontrados hasta ese punto en un componente léxico identificador. Los caracteres asi agrupados se registran en una tabla, llamada  tabla de símbolos,  y se retiran de la entrada, para que pueda empezar el procesamiento del siguiente elemento léxico.
Por otra parte, esta clase de análisis léxico lineal no es suficientemente poderoso para analizar expresiones o proposiciones. Por ejemplo, no podemos emparejar de manera apropiada los paréntesis de las expresiones, o las palabras begin y end en proposiciones sin imponer alguna clase de estructura jerárquica o de anidamiento a la entrada.
El árbol de análisis sintáctico de la figura anterior describe la estructura sintáctica de la entrada. Una representación interna más común de esta estructura es la que da el árbol sintáctico de la figura  a) Posición Inicial Velocidad 60 := + * a) Entareal Posición Inicial Velocidad 60 := + *
TABLA DE SIMBOLOS Un compilador necesita guardar y usar la información   de los objetos que se va encontrando en el texto fuente, como variables, etiquetas, declaraciones de tipos, etc. Esta información se almacena en una estructura de datos interna conocida como tabla de símbolos. El compilador debe desarrollar una serie de funciones relativas a la manipulación de esta tabla como insertar un nuevo elemento en ella, consultar la información relacionada con un símbolo, borrar un elemento, etc. Como se tiene que acceder mucho a la tabla de símbolos los accesos deben ser lo más rápidos posible para que la compilación sea eficiente.
GRAMATICA TIPO CERO Una cadena de componentes léxicos es una secuencia de cero o más componentes léxicos. Si la cadena posee cero componentes entonces se dice que es una cadena  vacía  y se escribe ε.
 
 

Contenu connexe

Tendances

Tabla SiMbolos, victor mamani catachura, boreasH,Compiladores
Tabla SiMbolos, victor mamani catachura, boreasH,CompiladoresTabla SiMbolos, victor mamani catachura, boreasH,Compiladores
Tabla SiMbolos, victor mamani catachura, boreasH,Compiladoresvictor mamani
 
Cap5
Cap5Cap5
Cap5CJAO
 
COMPILADORES-Tabla de Simbolos
COMPILADORES-Tabla de SimbolosCOMPILADORES-Tabla de Simbolos
COMPILADORES-Tabla de SimbolosLilian León Meza
 
Tabladesmbolos 101103230525-phpapp02
Tabladesmbolos 101103230525-phpapp02Tabladesmbolos 101103230525-phpapp02
Tabladesmbolos 101103230525-phpapp02Javier Alva
 
Ud2 el modelo relacional
Ud2  el modelo relacionalUd2  el modelo relacional
Ud2 el modelo relacionalLesli Pacheco
 
Incorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos CompiladoresIncorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos Compiladoresguest5fa3fc
 
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
 
Representaciones estructurales
Representaciones estructuralesRepresentaciones estructurales
Representaciones estructuralesAlvays Rodriguez
 

Tendances (19)

Compiladores1
Compiladores1Compiladores1
Compiladores1
 
Compiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico ConceptosCompiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico Conceptos
 
Tabla SiMbolos, victor mamani catachura, boreasH,Compiladores
Tabla SiMbolos, victor mamani catachura, boreasH,CompiladoresTabla SiMbolos, victor mamani catachura, boreasH,Compiladores
Tabla SiMbolos, victor mamani catachura, boreasH,Compiladores
 
Cap5
Cap5Cap5
Cap5
 
Apuntes compiladores
Apuntes compiladoresApuntes compiladores
Apuntes compiladores
 
COMPILADORES-Tabla de Simbolos
COMPILADORES-Tabla de SimbolosCOMPILADORES-Tabla de Simbolos
COMPILADORES-Tabla de Simbolos
 
Tabla simbolos
Tabla simbolosTabla simbolos
Tabla simbolos
 
Tabladesmbolos 101103230525-phpapp02
Tabladesmbolos 101103230525-phpapp02Tabladesmbolos 101103230525-phpapp02
Tabladesmbolos 101103230525-phpapp02
 
TABLA DE SÍMBOLOS
TABLA DE SÍMBOLOSTABLA DE SÍMBOLOS
TABLA DE SÍMBOLOS
 
Administrador de Tabla de Símbolos
Administrador de Tabla de SímbolosAdministrador de Tabla de Símbolos
Administrador de Tabla de Símbolos
 
Ud2 el modelo relacional
Ud2  el modelo relacionalUd2  el modelo relacional
Ud2 el modelo relacional
 
Claselexico
ClaselexicoClaselexico
Claselexico
 
Incorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos CompiladoresIncorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos Compiladores
 
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
 
Representaciones estructurales
Representaciones estructuralesRepresentaciones estructurales
Representaciones estructurales
 
1expo yeisland12
1expo yeisland121expo yeisland12
1expo yeisland12
 
Maria reyes
Maria reyesMaria reyes
Maria reyes
 
Lex
LexLex
Lex
 
Presentación1
Presentación1Presentación1
Presentación1
 

En vedette

Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguajezamanthag_una
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretadorFrancisco Leal
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...SlideShare
 

En vedette (6)

Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
Clasificacion de Interpretes
Clasificacion de InterpretesClasificacion de Interpretes
Clasificacion de Interpretes
 
Procesadores de Lenguajes II
Procesadores de Lenguajes IIProcesadores de Lenguajes II
Procesadores de Lenguajes II
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
 

Similaire à Compilador Exp

Compiladores - Incorporacion de una Tabla de Simbolos Compiladores
Compiladores - Incorporacion de una Tabla de Simbolos CompiladoresCompiladores - Incorporacion de una Tabla de Simbolos Compiladores
Compiladores - Incorporacion de una Tabla de Simbolos Compiladoresjose haar
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabrielEnrique Morales
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semanticoAlvaro Cedeño
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semanticoInfomania pro
 
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemasJESSIKADG86
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2perlallamas
 
Datos y algoritmos
Datos y algoritmosDatos y algoritmos
Datos y algoritmosUNEG
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoInfomania pro
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoangiepao1717
 
Estructura general del programa
Estructura general del programaEstructura general del programa
Estructura general del programaRubén Peña
 
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_
 

Similaire à Compilador Exp (20)

Compiladores - Incorporacion de una Tabla de Simbolos Compiladores
Compiladores - Incorporacion de una Tabla de Simbolos CompiladoresCompiladores - Incorporacion de una Tabla de Simbolos Compiladores
Compiladores - Incorporacion de una Tabla de Simbolos Compiladores
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabriel
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semantico
 
Compilador2
Compilador2Compilador2
Compilador2
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Analizador sintáctico
Analizador sintácticoAnalizador sintáctico
Analizador sintáctico
 
Curso prog sist
Curso prog sistCurso prog sist
Curso prog sist
 
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemas
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
Datos y algoritmos
Datos y algoritmosDatos y algoritmos
Datos y algoritmos
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexico
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintáctico
 
Compilacion parcial
Compilacion parcialCompilacion parcial
Compilacion parcial
 
Curso prog sist
Curso prog sistCurso prog sist
Curso prog sist
 
Analisis lexico automatas i
Analisis lexico automatas iAnalisis lexico automatas i
Analisis lexico automatas i
 
Estructura general del programa
Estructura general del programaEstructura general del programa
Estructura general del programa
 
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
 

Dernier

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
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
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
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
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
 
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
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
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
 
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
 
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
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
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
 

Dernier (16)

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
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
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
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
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)
 
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
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
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
 
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
 
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
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
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
 

Compilador Exp

  • 1. Ángel Antonio Carvajal C. Jesús Antonio Hoyos Perdomo COMPILADOR SENCILLO DE UNA PASADA
  • 2. COMPILADOR SENCILLO DE UNA PASADA Examina el código fuente una vez, generando el código o programa objeto.
  • 3.
  • 4. Los espacios en blanco que separan los caracteres de estos componentes léxicos normalmente se eliminan durante el análisis léxico. La fase de análisis léxico lee los caracteres en el programa fuente y los agrupa en una cadena de componentes léxico en los que cada componente representa una secuencia lógicamente coherente de caracteres, como un identificador, una palabra clave (if, While, etc), un carácter de puntuación, o un operador de varios caracteres, como := . La secuencia de caracteres que forma un componente léxico se denomina l exema del componente A ciertos componentes léxicos se les agregara un “valor léxico”. Así, cuando se encuentra un identificador como velocidad, el analizador léxico no solo genera un componente léxico, por ejemplo: id, sino que también introduce el lexema velocidad en la tabla de símbolos, si aun no estaba allí. El valor léxico asociado con esta aparición de id señala la entrada de la tabla de símbolos correspondiente a velocidad.
  • 5. En esta sección, se usaran id 1 , id 2 e id 3 , para posición, inicial y velocidad, respectivamente, para enfatizar que la representación interna de un identificador es diferente de la secuencia de caracteres que forman el identificador. Por tanto, la representación Posición:= inicial + velocidad * 60 después del análisis léxico queda sugerida por: id 1 := id 2 + id 3 * 60 Se deberían construir componentes léxicos para el operador de varios caracteres := y el numero 60, para reflejar su representación interna. En id 1 := id 2 + id 3 * 60 ya se introdujeron las fases segunda y tercera: los análisis sintáctico y semántico.
  • 6. El análisis sintáctico impone una estructura jerárquica a la cadena de componentes léxicos, que se representara por medio de arboles sintácticos así:   Id 1 Id 2 Id 3 60 := + * a)
  • 7. Una estructura de datos típica para el árbol sería la siguiente: := + * 1 Id 2 Id 3 Id 60 num
  • 8. En la que un nodo interior es un registro con un campo para el operador y dos campos que contienen apuntadores a los registros de los hijos izquierdo y derecho. Una hoja es un registro con dos o mas campos, una para identificar el componente léxico de la hoja, y los otros para registrar información sobre el componente léxico. Se puede tener información adicional sobre las construcciones del lenguaje añadiendo mas campos a los registros de los nodos.
  • 9. ANALISIS SINTACTICO También llamado análisis jerárquico. Este implica agrupar los componentes léxicos del programa fuente en frases gramaticales que el compilador utiliza para sintetizar la salida. Por lo general las frases gramaticales del programa fuente se representan mediante un árbol de análisis sintáctico como el de la siguiente figura:
  • 10. Proposición de asignación Expresión Expresión Expresión Expresión Identificador Identificador Posición Inicial Velocidad 60 := + * Expresión Identificador Numero
  • 11.
  • 12. Las reglas a) y b) son reglas básicas, mientras que la regla c) define expresiones en función de operadores aplicados a otras expresiones. Así, por la regla a), inicial y velocidad son expresiones. Por la regla b), 60 es una expresión, mientras que por la regla c), primero podemos inferir que velocidad * 60 es una expresión, y finalmente, que inicial + velocidad * 60 también es una expresión. De manera similar, muchos lenguajes definen recursivamente las proposiciones mediante reglas como:   Si Identificador 1 es un identificador y Expresion 1 es una expresión, entonces… Identificador 1 := Expresion 2 es una proposición Si Expresion 1 es una expresión y Proposicion 2 es una proposición, entonces… While ( expresión 1 ) do proposicion 2 If ( expresión 1 ) then proposicion 2 son proposiciones.
  • 13. La división entre análisis léxico y análisis sintáctico es algo arbitraria. Generalmente se elige una división que simplifique la tarea completa del análisis. Un factor para determinar la división es si una construcción del lenguaje fuente es inherentemente recursiva o no. Las construcciones léxicas no requieren recursión, mientras que las construcciones sintácticas suelen requerirla. Las gramáticas independientes del contexto son una formalización de reglas recursivas que se pueden usar para guiar el análisis sintáctico.
  • 14. Por ejemplo, no se requiere recursión para reconocer los identificadores, que suelen ser cadenas de letras y dígitos que comienzan con una letra. Normalmente, se reconocen los identificadores por el simple examen del flujo de entrada, esperando hasta encontrar un carácter que no sea ni letra ni digito, y agrupando después todas las letras y dígitos encontrados hasta ese punto en un componente léxico identificador. Los caracteres asi agrupados se registran en una tabla, llamada tabla de símbolos, y se retiran de la entrada, para que pueda empezar el procesamiento del siguiente elemento léxico.
  • 15. Por otra parte, esta clase de análisis léxico lineal no es suficientemente poderoso para analizar expresiones o proposiciones. Por ejemplo, no podemos emparejar de manera apropiada los paréntesis de las expresiones, o las palabras begin y end en proposiciones sin imponer alguna clase de estructura jerárquica o de anidamiento a la entrada.
  • 16. El árbol de análisis sintáctico de la figura anterior describe la estructura sintáctica de la entrada. Una representación interna más común de esta estructura es la que da el árbol sintáctico de la figura a) Posición Inicial Velocidad 60 := + * a) Entareal Posición Inicial Velocidad 60 := + *
  • 17. TABLA DE SIMBOLOS Un compilador necesita guardar y usar la información de los objetos que se va encontrando en el texto fuente, como variables, etiquetas, declaraciones de tipos, etc. Esta información se almacena en una estructura de datos interna conocida como tabla de símbolos. El compilador debe desarrollar una serie de funciones relativas a la manipulación de esta tabla como insertar un nuevo elemento en ella, consultar la información relacionada con un símbolo, borrar un elemento, etc. Como se tiene que acceder mucho a la tabla de símbolos los accesos deben ser lo más rápidos posible para que la compilación sea eficiente.
  • 18. GRAMATICA TIPO CERO Una cadena de componentes léxicos es una secuencia de cero o más componentes léxicos. Si la cadena posee cero componentes entonces se dice que es una cadena vacía y se escribe ε.
  • 19.  
  • 20.