SlideShare una empresa de Scribd logo
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:

Más contenido relacionado

La actualidad más candente

Análisis semántico
Análisis semánticoAnálisis semántico
Análisis semántico
ROQUE Caldas Dominguez
 
Algebra junior rico2
Algebra junior rico2Algebra junior rico2
Algebra junior rico2
JuniorRico1
 
algoritmo
algoritmoalgoritmo
algoritmo
Cristhian Tapia
 
Pseudocodigo 2 am
Pseudocodigo 2 amPseudocodigo 2 am
Pseudocodigo 2 amalexisrm11
 
Practica1 Matlab Operadores Básicos
Practica1 Matlab Operadores BásicosPractica1 Matlab Operadores Básicos
Practica1 Matlab Operadores Básicos
Saul Olaf Loaiza Meléndez
 
Taller algoritmos2
Taller algoritmos2Taller algoritmos2
Taller algoritmos2
Jjuliian Daviid Diaz
 
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
 
Teoría de Autómata
Teoría de AutómataTeoría de Autómata
Teoría de Autómata
Yuyi Pacheco Kimura
 
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 merlin
Alex 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
 
Algoritmos y programas estructuras
Algoritmos y programas estructurasAlgoritmos y programas estructuras
Algoritmos y programas estructuras
Yenit Alexandra Ochoa Sanabria
 
algortimos
algortimosalgortimos
algortimos
David Gelita
 
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
 

La actualidad más candente (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
 

Similar a Analizador sintactico

Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
Bayo Chicaiza
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
ROQUE Caldas Dominguez
 
T37 isc zaraos vazquez jorge alejandro
T37 isc zaraos vazquez jorge alejandroT37 isc zaraos vazquez jorge alejandro
T37 isc zaraos vazquez jorge alejandro
Alejandro Zaraos Vázquez
 
Analisis lexico
Analisis lexicoAnalisis lexico
Analisis lexico
Santiago Bejarano
 
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 gabriel
Enrique Morales
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
Jhampier_Piedra
 
Analisis Semantico
Analisis Semantico Analisis Semantico
Analisis Semantico
Martin Paucar Mendez
 
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 - Descendente
Guiru Xd
 
Analizador sintáctico
Analizador sintácticoAnalizador sintáctico
Analizador sintáctico
Eduardo Chavez Vasquez
 
Analisis lexico
Analisis lexicoAnalisis lexico
Analisis lexico
Wilman Kdnita
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintacticoPUCESI
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
Infomania pro
 
Analizadores Sintácticos
Analizadores SintácticosAnalizadores Sintácticos
Analizadores Sintácticos
Bryant Arellano
 

Similar a Analizador sintactico (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
 

Último

DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
AMADO SALVADOR
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
SofiaCollazos
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
Todo sobre Minirobotica. Revista Saber Electronica
Todo sobre  Minirobotica. Revista Saber ElectronicaTodo sobre  Minirobotica. Revista Saber Electronica
Todo sobre Minirobotica. Revista Saber Electronica
Carlos Carlosnoemi
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
aljitagallego
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 

Último (20)

DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
Todo sobre Minirobotica. Revista Saber Electronica
Todo sobre  Minirobotica. Revista Saber ElectronicaTodo sobre  Minirobotica. Revista Saber Electronica
Todo sobre Minirobotica. Revista Saber Electronica
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 

Analizador sintactico

  • 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: