SlideShare ist ein Scribd-Unternehmen logo
1 von 6
Downloaden Sie, um offline zu lesen
Pontificia Universidad Católica del Ecuador
Sede Ibarra
Nombre: Carlos Marcelo Rivadeneira Velasco
El papel del analizador sintáctico
En este modelo de compilador, el analizador sintáctico obtiene una cadena de
componentes léxicos del analizador léxico, y comprueba si la cadena puede
ser generada por la gramática del lenguaje fuente. Se supone que el
analizador sintáctico informará de cualquier error de sintaxis de manera
inteligible. También debería recuperarse de los errores que ocurren
frecuentemente para poder continuar procesando el resto de su entrada.
Los métodos empleados generalmente en los compiladores se clasifican como
descendentes o ascendentes. Como sus nombres indican, los analizadores
sintácticos descendentes construyen árboles de análisis sintáctico desde
arriba (la raíz) hasta abajo (las hojas), mientras que los analizadores
sintácticos ascendentes comienzan en las hojas y suben hacia la raíz. En
ambos casos, se examina la entrada al analizador sintáctico de izquierda a
derecha, un símbolo a la vez.
Análisis sintáctico descendente.
En éste analizador las entradas son de izquierda a derecha, y construcciones
de derivaciones por la izquierda de una sentencia o enunciado.
Características
 El análisis sintáctico descendente (ASD) intenta encontrar entre las
producciones de la gramática la derivación por la izquierda del símbolo
inicial para una cadena de entrada.
 Parte del axioma de la gramática.
 Procesa la entrada de izquierda a derecha.
 Escoge reglas gramaticales.
 Bueno primeramente para trabajar el análisis sintáctico descendente
se debe realizar primeramente algunas operaciones para que la
gramática sea LL1 las cuales son:
o ELIMINAR AMBIGUEDAD: Para eliminar la ambigüedad se debe
reescribir la gramática.
o ELIMINAR RECURSIVIDAD POR LA IZQUIERDA: Una
gramática es recursiva por la izquierda si tiene un nodo Terminal
a tal que existe una derivación A->Aα para alguna cadena. Es
decir por simple observación podemos identificar.
Para eliminar la recursividad por la izquierda se utiliza la siguiente formula
Factorizar
Se trata de rescribir las producciones de la gramática con igual comienzo
para retrasar la decisión hasta haber visto lo suficiente de la entrada como
para elegir la opción correcta.
Ejemplo:
El método parte del axioma inicial y aplica todas las posibles reglas al no
terminal más a la izquierda.
 Se usa el retroceso para resolver la incertidumbre.
 Sencillo de implementar.
 Muy eficiente.
Ejemplo:
El analizador debe realizar la previsión de la regla a aplicar sólo con ver el
primer símbolo que produce para que el algoritmo tenga una complejidad
lineal. Las gramáticas que son susceptibles de ser analizadas sintácticamente
de forma descendente mediante un análisis predictivo y consultando un
únicamente un símbolo de entrada pertenecen al grupo LL(1). A partir de
gramáticas LL(1) se pueden construir analizadores sintácticos descendentes
predictivos (ASDP), que son ASD sin retroceso.
Ejemplo:
Análisis sintáctico ascendente
El objetivo de un análisis ascendente consiste en construir el árbol sintáctico
desde abajo hacia arriba, esto es, desde los tokens hacia el axioma inicial, lo
cual disminuye el número de reglas mal aplicadas con respecto al caso
descendente (si hablamos del caso con retroceso) o amplía el número de
gramáticas susceptibles de ser analizadas (si hablamos del caso LL(1)).
Al igual que ocurría con el caso descendente, este tipo de análisis intenta
probar todas las posibles operaciones (reducciones y desplazamientos)
mediante un método de fuerza bruta, hasta llegar al árbol sintáctico, o bien
agotar todas las opciones, en cuyo caso la cadena se rechaza.
En el análisis con retroceso no se permiten las reglas ԑ, puesto que estas se
podrán aplicar de forma indefinida.
El análisis ascendente sin retroceso busca una derivación derecha de la
cadena de entrada de forma determinista.
 Este se sustenta en su aplicación a las gramáticas LR(K).
 La L viene de la lectura de la cadena de entrada de izquierda a derecha.
 La R de producir un árbol de derivación derecho.
 La k indica el número de símbolos que es necesario leer a la entrada
para tomar la decisión de qué producción emplear.
 Un parser del tipo shift-reduce puede verse como un autómata de pila
determinista extendido que realiza el análisis de abajo hacia arriba.
 Dada una cadena de entrada w, simula una derivación más a la derecha.
¿Cuál es su diferencia?
 En el análisis sintáctico descendente: se construye el árbol sintáctico
arriba hacia abajo y se utiliza más reglas.
 En el análisis sintáctico ascendente: se construye el árbol sintáctico
de abajo hacia arriba, lo cual disminuye el número de reglas mal
aplicadas con respecto al caso descendente.
Tratamiento de errores
Exige que el programa pueda ejecutarse. Suele utilizarse en sistemas que
generan .EXE directamente, pues ahorra tiempo (permite encontrar errores
de ejecución a la vez que los de compilación).
Sólo trata de evitar que el número de mensajes de error sea demasiado
grande y que el compilador/intérprete pueda seguir ejecutándose
correctamente en instrucciones sucesivas.
Errores ortográficos típicos:
 Un carácter por otro.
 Un carácter perdido.
 Un carácter añadido.
 Dos caracteres intercambiados.
Si se detecta al analizar la cadena
XUy
Donde x,y en A* y U en A es el próximo símbolo a analizar, podemos intentar
lo siguiente:
 Borrar U e intentarlo de nuevo.
 Insertar una cadena de terminales z entre x, U y empezar a analizar a
partir de z.
Insertar una cadena de terminales z entre x, U y empezar a analizar a
partir de U, poniendo z en la pila (si es análisis bottom-up).
 Borrar símbolos del final de x e intentar de nuevo.
 No hacer nunca los dos últimos. Deshace la información semántica
asociada.
Conviene tener una sola rutina de recuperación de errores separada del resto
del compilador.
Evitar que un solo error produzca varios mensajes.
 Hay que señalar el error y detener la ejecución, permitiendo al
programador
 Revisar las variables
 Revisar el código
 Modificar el código
 Reanudar la ejecución
 Saltarse líneas
 Abandonar la ejecución del último programa
 Abandonar totalmente la ejecución
 Y asegurarse de que todo sigue correctamente. En lenguaje simbólico
se puede manipular la pila de ejecución, salir automáticamente de
rutinas pendientes, sin continuar la ejecución, etc.
Árboles sintácticos
Árbol sintáctico, para una oración compuesta (el niño que me saludó me odia)
en la que la oración subordinada es una oración de relativo. Dada una oración
o construcción compleja esta puede dividirse en constituyentes sintácticos,
cada uno de los cuales a su vez podría ser divisible o analizable en otros
constituyentes. El conjunto de constituyentes sintácticos admite con la
relación binaria de inclusión (o "ser parte de") es un conjunto parcialmente
ordenado.
Un árbol sintáctico es una representación de las relaciones jerárquicas entre
los constituyentes sintácticos. Más formalmente, un árbol sintáctico es una
grafo que representa esta relación de orden parcial.
EJEMPLO:

Weitere ähnliche Inhalte

Was ist angesagt?

Algebra junior rico2
Algebra junior rico2Algebra junior rico2
Algebra junior rico2JuniorRico1
 
Pseudocodigo 2 am
Pseudocodigo 2 amPseudocodigo 2 am
Pseudocodigo 2 amalexisrm11
 
Sesión 7 matlab - Operadores lógicos y relacionales
Sesión 7 matlab - Operadores lógicos y relacionalesSesión 7 matlab - Operadores lógicos y relacionales
Sesión 7 matlab - Operadores lógicos y relacionalesmatlab_usc
 
Pasos necesarios para crear pseudocódigo y un algoritmo
Pasos necesarios para crear pseudocódigo y un algoritmoPasos necesarios para crear pseudocódigo y un algoritmo
Pasos necesarios para crear pseudocódigo y un algoritmojairofr97
 
Instrucciones basicas para_c_
Instrucciones basicas para_c_Instrucciones basicas para_c_
Instrucciones basicas para_c_Diego Arturo
 
Exposicion de programacion merlin
Exposicion de programacion merlinExposicion de programacion merlin
Exposicion de programacion merlinAlex Merlin Amjs
 
Tutorial: Crear un algoritmo
Tutorial: Crear un algoritmo Tutorial: Crear un algoritmo
Tutorial: Crear un algoritmo Lauris R Severino
 
Programacion MatLab
Programacion MatLabProgramacion MatLab
Programacion MatLabEdgar Galvez
 
Unidad 04 estructuras básicas y técnicas para representar algoritmos
Unidad 04   estructuras básicas y técnicas para representar algoritmosUnidad 04   estructuras básicas y técnicas para representar algoritmos
Unidad 04 estructuras básicas y técnicas para representar algoritmosLorenzo Alejo
 
Analisis de algoritmo ii
Analisis de algoritmo iiAnalisis de algoritmo ii
Analisis de algoritmo iiMauro Rangel
 
IntroduccióN A La Programacion Tema 3 Algoritmia
IntroduccióN A La Programacion Tema 3 AlgoritmiaIntroduccióN A La Programacion Tema 3 Algoritmia
IntroduccióN A La Programacion Tema 3 AlgoritmiaAndres Garcia
 

Was ist angesagt? (20)

Automatas[1]
Automatas[1]Automatas[1]
Automatas[1]
 
Análisis semántico
Análisis semánticoAnálisis semántico
Análisis semántico
 
Algebra junior rico2
Algebra junior rico2Algebra junior rico2
Algebra junior rico2
 
algoritmo
algoritmoalgoritmo
algoritmo
 
algoritmos
algoritmosalgoritmos
algoritmos
 
Pseudocodigo 2 am
Pseudocodigo 2 amPseudocodigo 2 am
Pseudocodigo 2 am
 
Practica1 Matlab Operadores Básicos
Practica1 Matlab Operadores BásicosPractica1 Matlab Operadores Básicos
Practica1 Matlab Operadores Básicos
 
Taller algoritmos2
Taller algoritmos2Taller algoritmos2
Taller algoritmos2
 
Sesión 7 matlab - Operadores lógicos y relacionales
Sesión 7 matlab - Operadores lógicos y relacionalesSesión 7 matlab - Operadores lógicos y relacionales
Sesión 7 matlab - Operadores lógicos y relacionales
 
Teoría de Autómata
Teoría de AutómataTeoría de Autómata
Teoría de Autómata
 
Pasos necesarios para crear pseudocódigo y un algoritmo
Pasos necesarios para crear pseudocódigo y un algoritmoPasos necesarios para crear pseudocódigo y un algoritmo
Pasos necesarios para crear pseudocódigo y un algoritmo
 
Instrucciones basicas para_c_
Instrucciones basicas para_c_Instrucciones basicas para_c_
Instrucciones basicas para_c_
 
Exposicion de programacion merlin
Exposicion de programacion merlinExposicion de programacion merlin
Exposicion de programacion merlin
 
Tutorial: Crear un algoritmo
Tutorial: Crear un algoritmo Tutorial: Crear un algoritmo
Tutorial: Crear un algoritmo
 
Programacion MatLab
Programacion MatLabProgramacion MatLab
Programacion MatLab
 
Unidad 04 estructuras básicas y técnicas para representar algoritmos
Unidad 04   estructuras básicas y técnicas para representar algoritmosUnidad 04   estructuras básicas y técnicas para representar algoritmos
Unidad 04 estructuras básicas y técnicas para representar algoritmos
 
Analisis de algoritmo ii
Analisis de algoritmo iiAnalisis de algoritmo ii
Analisis de algoritmo ii
 
Algoritmos y programas estructuras
Algoritmos y programas estructurasAlgoritmos y programas estructuras
Algoritmos y programas estructuras
 
algortimos
algortimosalgortimos
algortimos
 
IntroduccióN A La Programacion Tema 3 Algoritmia
IntroduccióN A La Programacion Tema 3 AlgoritmiaIntroduccióN A La Programacion Tema 3 Algoritmia
IntroduccióN A La Programacion Tema 3 Algoritmia
 

Ähnlich wie Análisis sintáctico descendente

Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador SintacticoBayo Chicaiza
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintacticoalexisdario
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabrielEnrique Morales
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexicoJhampier_Piedra
 
Investigacion sobre asd y asa
Investigacion sobre asd y asaInvestigacion sobre asd y asa
Investigacion sobre asd y asaJimmy Jaramillo
 
El papel del analizador sintáctico
El papel del analizador sintácticoEl papel del analizador sintáctico
El papel del analizador sintácticoHector Espinosa
 
Análisis Sintáctico Ascendente - Descendente
Análisis Sintáctico Ascendente - DescendenteAnálisis Sintáctico Ascendente - Descendente
Análisis Sintáctico Ascendente - DescendenteGuiru Xd
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintacticoPUCESI
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semanticoInfomania pro
 
Analizadores Sintácticos
Analizadores SintácticosAnalizadores Sintácticos
Analizadores SintácticosBryant Arellano
 

Ähnlich wie Análisis sintáctico descendente (20)

Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
T37 isc zaraos vazquez jorge alejandro
T37 isc zaraos vazquez jorge alejandroT37 isc zaraos vazquez jorge alejandro
T37 isc zaraos vazquez jorge alejandro
 
Analisis lexico
Analisis lexicoAnalisis lexico
Analisis lexico
 
Capitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazarCapitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazar
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabriel
 
Análisis Sintáctico
Análisis SintácticoAnálisis Sintáctico
Análisis Sintáctico
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
 
Analisis Semantico
Analisis Semantico Analisis Semantico
Analisis Semantico
 
Investigacion sobre asd y asa
Investigacion sobre asd y asaInvestigacion sobre asd y asa
Investigacion sobre asd y asa
 
El papel del analizador sintáctico
El papel del analizador sintácticoEl papel del analizador sintáctico
El papel del analizador sintáctico
 
Análisis Sintáctico Ascendente - Descendente
Análisis Sintáctico Ascendente - DescendenteAnálisis Sintáctico Ascendente - Descendente
Análisis Sintáctico Ascendente - Descendente
 
Analizador sintáctico
Analizador sintácticoAnalizador sintáctico
Analizador sintáctico
 
Analisis lexico
Analisis lexicoAnalisis lexico
Analisis lexico
 
Ap3
Ap3Ap3
Ap3
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
 
Analizadores Sintácticos
Analizadores SintácticosAnalizadores Sintácticos
Analizadores Sintácticos
 

Kürzlich hochgeladen

La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
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
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
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
 
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
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
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
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 

Kürzlich hochgeladen (20)

La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
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
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
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
 
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.
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
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
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 

Análisis sintáctico descendente

  • 1. Pontificia Universidad Católica del Ecuador Sede Ibarra Nombre: Carlos Marcelo Rivadeneira Velasco El papel del analizador sintáctico En este modelo de compilador, el analizador sintáctico obtiene una cadena de componentes léxicos del analizador léxico, y comprueba si la cadena puede ser generada por la gramática del lenguaje fuente. Se supone que el analizador sintáctico informará de cualquier error de sintaxis de manera inteligible. También debería recuperarse de los errores que ocurren frecuentemente para poder continuar procesando el resto de su entrada. Los métodos empleados generalmente en los compiladores se clasifican como descendentes o ascendentes. Como sus nombres indican, los analizadores sintácticos descendentes construyen árboles de análisis sintáctico desde arriba (la raíz) hasta abajo (las hojas), mientras que los analizadores sintácticos ascendentes comienzan en las hojas y suben hacia la raíz. En ambos casos, se examina la entrada al analizador sintáctico de izquierda a derecha, un símbolo a la vez. Análisis sintáctico descendente. En éste analizador las entradas son de izquierda a derecha, y construcciones de derivaciones por la izquierda de una sentencia o enunciado. Características  El análisis sintáctico descendente (ASD) intenta encontrar entre las producciones de la gramática la derivación por la izquierda del símbolo inicial para una cadena de entrada.  Parte del axioma de la gramática.  Procesa la entrada de izquierda a derecha.  Escoge reglas gramaticales.  Bueno primeramente para trabajar el análisis sintáctico descendente se debe realizar primeramente algunas operaciones para que la gramática sea LL1 las cuales son: o ELIMINAR AMBIGUEDAD: Para eliminar la ambigüedad se debe reescribir la gramática. o ELIMINAR RECURSIVIDAD POR LA IZQUIERDA: Una gramática es recursiva por la izquierda si tiene un nodo Terminal a tal que existe una derivación A->Aα para alguna cadena. Es decir por simple observación podemos identificar.
  • 2. Para eliminar la recursividad por la izquierda se utiliza la siguiente formula Factorizar Se trata de rescribir las producciones de la gramática con igual comienzo para retrasar la decisión hasta haber visto lo suficiente de la entrada como para elegir la opción correcta. Ejemplo: El método parte del axioma inicial y aplica todas las posibles reglas al no terminal más a la izquierda.  Se usa el retroceso para resolver la incertidumbre.  Sencillo de implementar.  Muy eficiente. Ejemplo:
  • 3. El analizador debe realizar la previsión de la regla a aplicar sólo con ver el primer símbolo que produce para que el algoritmo tenga una complejidad lineal. Las gramáticas que son susceptibles de ser analizadas sintácticamente de forma descendente mediante un análisis predictivo y consultando un únicamente un símbolo de entrada pertenecen al grupo LL(1). A partir de gramáticas LL(1) se pueden construir analizadores sintácticos descendentes predictivos (ASDP), que son ASD sin retroceso. Ejemplo: Análisis sintáctico ascendente El objetivo de un análisis ascendente consiste en construir el árbol sintáctico desde abajo hacia arriba, esto es, desde los tokens hacia el axioma inicial, lo cual disminuye el número de reglas mal aplicadas con respecto al caso descendente (si hablamos del caso con retroceso) o amplía el número de gramáticas susceptibles de ser analizadas (si hablamos del caso LL(1)). Al igual que ocurría con el caso descendente, este tipo de análisis intenta probar todas las posibles operaciones (reducciones y desplazamientos) mediante un método de fuerza bruta, hasta llegar al árbol sintáctico, o bien agotar todas las opciones, en cuyo caso la cadena se rechaza. En el análisis con retroceso no se permiten las reglas ԑ, puesto que estas se podrán aplicar de forma indefinida.
  • 4. El análisis ascendente sin retroceso busca una derivación derecha de la cadena de entrada de forma determinista.  Este se sustenta en su aplicación a las gramáticas LR(K).  La L viene de la lectura de la cadena de entrada de izquierda a derecha.  La R de producir un árbol de derivación derecho.  La k indica el número de símbolos que es necesario leer a la entrada para tomar la decisión de qué producción emplear.  Un parser del tipo shift-reduce puede verse como un autómata de pila determinista extendido que realiza el análisis de abajo hacia arriba.  Dada una cadena de entrada w, simula una derivación más a la derecha. ¿Cuál es su diferencia?  En el análisis sintáctico descendente: se construye el árbol sintáctico arriba hacia abajo y se utiliza más reglas.  En el análisis sintáctico ascendente: se construye el árbol sintáctico de abajo hacia arriba, lo cual disminuye el número de reglas mal aplicadas con respecto al caso descendente. Tratamiento de errores Exige que el programa pueda ejecutarse. Suele utilizarse en sistemas que generan .EXE directamente, pues ahorra tiempo (permite encontrar errores de ejecución a la vez que los de compilación). Sólo trata de evitar que el número de mensajes de error sea demasiado grande y que el compilador/intérprete pueda seguir ejecutándose correctamente en instrucciones sucesivas. Errores ortográficos típicos:  Un carácter por otro.  Un carácter perdido.  Un carácter añadido.  Dos caracteres intercambiados.
  • 5. Si se detecta al analizar la cadena XUy Donde x,y en A* y U en A es el próximo símbolo a analizar, podemos intentar lo siguiente:  Borrar U e intentarlo de nuevo.  Insertar una cadena de terminales z entre x, U y empezar a analizar a partir de z. Insertar una cadena de terminales z entre x, U y empezar a analizar a partir de U, poniendo z en la pila (si es análisis bottom-up).  Borrar símbolos del final de x e intentar de nuevo.  No hacer nunca los dos últimos. Deshace la información semántica asociada. Conviene tener una sola rutina de recuperación de errores separada del resto del compilador. Evitar que un solo error produzca varios mensajes.  Hay que señalar el error y detener la ejecución, permitiendo al programador  Revisar las variables  Revisar el código  Modificar el código  Reanudar la ejecución  Saltarse líneas  Abandonar la ejecución del último programa  Abandonar totalmente la ejecución  Y asegurarse de que todo sigue correctamente. En lenguaje simbólico se puede manipular la pila de ejecución, salir automáticamente de rutinas pendientes, sin continuar la ejecución, etc.
  • 6. Árboles sintácticos Árbol sintáctico, para una oración compuesta (el niño que me saludó me odia) en la que la oración subordinada es una oración de relativo. Dada una oración o construcción compleja esta puede dividirse en constituyentes sintácticos, cada uno de los cuales a su vez podría ser divisible o analizable en otros constituyentes. El conjunto de constituyentes sintácticos admite con la relación binaria de inclusión (o "ser parte de") es un conjunto parcialmente ordenado. Un árbol sintáctico es una representación de las relaciones jerárquicas entre los constituyentes sintácticos. Más formalmente, un árbol sintáctico es una grafo que representa esta relación de orden parcial. EJEMPLO: