SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
CLASE#07: ANALIZADOR SINTÁCTICO
1
UNIVERSIDAD “GERARDO BARRIOS”
COMPILADORES E INTÉRPRETES
CICLO I – 2016
DOCENTE: ING. MARVIN OSMARO PARADA
CLASE # 07
UNIDAD 3 ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
OBJETIVOS
Complementar conceptos teóricos del análisis Léxico y Sintáctico.
Estudiar el código fuente de un programa prototipo de análisis Léxico y Sintáctico desarrollado.
DESARROLLO TEMATICO
La mayor parte de este tema está dedicada a los métodos de análisis sintáctico de uso típico en
compiladores. Primero se introducen los conceptos básicos, después las técnicas adecuadas para la
aplicación manual. Además como los programas pueden contener errores sintácticos, los métodos de análisis
sintáctico se pueden ampliar para que se recuperen de los errores sintácticos más frecuentes.
¿QUÉ ES EL ANALIZADOR SINTÁCTICO?
Es la fase del analizador que se encarga de chequear el texto de entrada en base a una gramática dada. Y
en caso de que el programa de entrada sea válido, suministra el árbol sintáctico que lo reconoce.
El análisis sintáctico es un análisis a nivel de sentencias, y es mucho más complejo que el análisis léxico. Su
función es tomar el programa fuente en forma de tokens, que recibe del analizador léxico, y determinar la
estructura de las sentencias del programa. Este proceso es similar a determinar la estructura de una frase
en castellano, determinando quien es el sujeto, predicado, el verbo y los complementos. El análisis sintáctico
agrupa a los tokens en clases sintácticas (denominadas no terminales en la definición de la gramática), tales
como expresiones, procedimientos, etc.
En teoría, se supone que la salida del analizador sintáctico es alguna representación del árbol sintáctico que
reconoce la secuencia de tokens suministrada por el analizador léxico.
El analizador sintáctico o parser obtiene un árbol sintáctico (u otra estructura equivalente) en la cual las
hojas son los tokens, y cualquier nodo que no sea una hoja, representa un tipo de clase sintáctica
(operaciones). Por ejemplo el análisis sintáctico de la siguiente expresión:
(A+B)*(C+D)
Con las reglas de la gramática que se presenta a continuación dará lugar al árbol sintáctico EJEMPLO
<expresión> ::= <término> <más términos>
<más términos>::= +<término> <más términos>| - <término> <más términos> | <vacío>
<término> ::= <factor> <más factores>
<más factores>::= * <factor> <más factores>|/ <factor> <más factores> | <vacío>
<factor> ::= ( <expresión> ) | <variable> | <constante>
La estructura de la gramática anterior refleja la prioridad de los operadores, así los operadores “+” y “-”
tienen la prioridad más baja, mientras que “*” y “/” tienen una prioridad superior. Se evaluaran en primer
lugar las constantes, variables y expresiones entre paréntesis.
Los árboles sintácticos se construyen con un conjunto de reglas conocidas como gramática, y que definen
con total precisión el lenguaje fuente.
Al proceso de reconocer la estructura del lenguaje fuente se conoce con el nombre de análisis sintáctico
(parsing).
La principal tarea del analizador sintáctico no es comprobar que la sintaxis del programa fuente sea correcta,
sino construir una representación interna de ese programa y en el caso en que sea un programa incorrecto,
dar un mensaje de error.
CLASE#07: ANALIZADOR SINTÁCTICO
2
EL ANALIZADOR SINTÁCTICO (ASN) comprueba que el orden en que el analizador léxico le va
entregando los tokens es válido. Si esto es así significará que la sucesión de símbolos que representan
dichos tokens puede ser generada por la gramática correspondiente al lenguaje del código fuente.
La forma más habitual de representar la sintaxis de un programa es el árbol de análisis sintáctico, y lo
que hacen los analizadores sintácticos es construir una derivación por la izquierda o por la derecha del
programa fuente, que en realidad son dos recorridos determinados del árbol de análisis sintáctico. A partir
de ese recorrido el analizador sintáctico debe construir una representación intermedia de ese programa
fuente: un árbol sintáctico abstracto o bien un programa en un lenguaje intermedio; por este motivo, es
muy importante que la gramática esté bien diseñada, e incluso es frecuente rediseñar la gramática original
para facilitar la tarea de obtener la representación intermedia mediante un analizador sintáctico concreto.
El ASN constituye el esqueleto principal del compilador. Habitualmente el analizador léxico se implementa
como una rutina dentro del sintáctico, al que devuelve el siguiente token que encuentre en el buffer de
entrada cada vez que éste se lo pide. Así mismo, gran parte del resto de etapas de un programa traductor
están integradas de una u otra forma en el analizador sintáctico.
LAS PRINCIPALES FUNCIONES SON:
Identificar cada tipo de instrucción y sus componentes.
– Completar la Tabla de Símbolo s.
– Realizar comprobaciones estáticas:
• Se realizan durante la compilación del programa.
• Ejemplos: comp. de tipos, unicidad de etiquetas e identificadores, etc.
– Realizar comprobaciones dinámicas:
• Aquellas que el compilador incorpora al programa traducido.
• Hacen referencia a aspectos que sólo pueden ser conocidos en tiempo de ejecución
• Dependientes del estado de la máquina en la ejecución o del propio programa.
– Validar las declaraciones de identificadores: en muchos lenguajes no se puede usar una variable si no
ha sido declarada con anterioridad.
Hay distintas clases de analizadores o reconocedores sintácticos, pero en general se clasifican en 2 grandes
grupos: A.S.
Ascendentes y A.S. Descendentes.
TIPOS DE ANÁLISIS SINTÁCTICOS
Desde el punto de vista de la teoría de Análisis Sintáctico, hay dos estrategias para construir el árbol
sintáctico:
Análisis descendente: partimos de la raíz del árbol (donde estará situado el axioma o símbolo inicial de la
gramática) y se van aplicando reglas por la izquierda de forma que se obtiene una derivación por la izquierda
de la cadena de entrada. Para decidir qué regla aplicar, se lee un token de la entrada. Recorriendo el árbol
de análisis sintáctico resultante, en profundidad de izquierda a derecha, encontraremos en las hojas del árbol
los tokens que nos devuelve el Analizador Léxico (A.L.) en ese mismo orden.
Análisis ascendente: partiendo de la cadena de entrada, se construye el árbol de análisis sintáctico
empezando por las hojas (donde están los tokens) y se van creando nodos intermedios hasta llegar a la raíz
(hasta el símbolo inicial), construyendo así el árbol de abajo a arriba. El recorrido del árbol se hará desde las
hojas hasta la raíz. El orden en el que se van encontrando las producciones corresponde a la inversa de una
derivación por la derecha.
Las dos estrategias recorren la cadena de entrada de izquierda a derecha una sola vez, y necesitan (para que
el análisis sea eficiente) que la gramática no sea ambigua.
Para ello, el analizador sintáctico (A.S.) comprueba que el orden en que el analizador léxico le va
entregando los tokens es válido. Si esto es así significará que la sucesión de símbolos que representan
dichos tokens puede ser generada por la gramática correspondiente al lenguaje del código fuente.
CLASE#07: ANALIZADOR SINTÁCTICO
3
MANEJO DE ERRORES SINTÁCTICOS
Si un compilador tuviera que procesar sólo programas correctos, su diseño e implantación se
simplificarían mucho. Pero los programadores a menudo escriben programas incorrectos, y un buen
compilador debería ayudar al programador a identificar y localizar errores. Es más, considerar desde el
principio el manejo de errores puede simplificar la estructura de un compilador y mejorar su respuesta a
los errores.
Los errores en la programación pueden ser de los siguientes tipos:
• Léxicos, producidos al escribir mal un identificador, una palabra clave o un operador.
• Sintácticos, por una expresión aritmética o paréntesis no equilibrados.
• Semánticos, como un operador aplicado a un operando incompatible.
• Lógicos, puede ser una llamada infinitamente recursiva.
El manejo de errores de sintaxis es el más complicado desde el punto de vista de la creación de
compiladores. Nos interesa que cuando el compilador encuentre un error, se recupere y siga buscando
errores.
Por lo tanto el manejador de errores de un analizador sintáctico debe tener como objetivos:
• Indicar los errores de forma clara y precisa. Aclarar el tipo de error y su localización.
• Recuperarse del error, para poder seguir examinando la entrada.
• No ralentizar significativamente la compilación.
Un buen compilador debe hacerse siempre teniendo también en mente los errores que se pueden
producir; con ello se consigue:
• Simplificar la estructura del compilador.
• Mejorar la respuesta ante los errores.
Tenemos varias estrategias para corregir errores, una vez detectados:
• Ignorar el problema (Panic mode ): Consiste en ignorar el resto de la entrada hasta llegar a una
condición de seguridad. Una condición tal se produce cuando nos encontramos un token especial (por
ejemplo un ‘;’o un ‘END’).A partir de este punto se sigue analizando normalmente.
• Recuperación a nivel de frase: Intenta recuperar el error una vez descubierto. En el caso anterior, por
ejemplo, podría haber sido lo suficientemente inteligente como para insertar el token ‘;’. Hay que tener
cuidado con este método, pues puede dar lugar a recuperaciones infinitas.
GRAMÁTICAS DE ATRIBUTOS. Una gramática de atributos es una gramática libre de contexto cuyos
símbolos pueden tener asociados atributos y las producciones pueden tener asociadas reglas de
evaluación de los atributos. En la creación de compiladores se utilizan ecuaciones de atributos o reglas
semánticas como método para expresar la relación entre el cálculo de los atributos y las reglas del
lenguaje. Cada producción (regla sintáctica) tiene asociada una acción semántica que se aplica cuando se
realiza una reducción en el análisis sintáctico ascendente.
Atributo: propiedad de una construcción de un lenguaje. Pueden variar mucho en cuanto a información
que contienen o tiempo que tardan en determinarse durante la traducción/ejecución. Cada símbolo
(terminal o no terminal) puede tener asociado un número finito de atributos. Ejemplos de atributos:
– Tipo de una variable
– Valor de una expresión
– Ubicación en memoria de una variable
– Código objeto de un procedimiento
– Número de dígitos significativos en un número
CLASE#07: ANALIZADOR SINTÁCTICO
4
UNIVERSIDAD “GERARDO BARRIOS”
COMPILADORES E INTÉRPRETES
CICLO I – 2016
DOCENTE: ING. MARVIN OSMARO PARADA
LABORATORIO 2 COMPUTO II – TEÓRICO 50%
ALUMNO FIRMA
INDICACIÓN. REUNIRSE EN GRUPO DE TRES INTEGRANTES y RESPONDER A LAS SIGUIENTES
PREGUNTAS, ENTREGAR EL INFORME AL DOCENTE
1. Que es un árbol sintáctico
2. Cuál es la salida del analizar sintáctico
3. En que cosiste la gramáticas de atributos
4. Cuál es la principal tarea del analizador sintáctico
5. Que son los atributos, menciona algunos ejemplos
6. Cuál es la función principal del analizador sintáctico
7. Cuáles son los tipos de análisis sintáctico, explica cada uno
8. Como interactúa el manejo de errores en la fase de análisis sintáctico
9. Define con tus propias palabras en que consiste un analizador sintáctico
10.Cuáles suelen será los errores más comunes en la programación de esta fase

Más contenido relacionado

La actualidad más candente

Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Dj Mada - Tres Valles, Veracruz
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitosZuleima
 
Metricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccionMetricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccionJose Diaz Silva
 
Modelo requisitos UML
Modelo requisitos UMLModelo requisitos UML
Modelo requisitos UMLramirezjaime
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2perlallamas
 
Unidad 1 verificacion y-validacion
Unidad 1 verificacion y-validacionUnidad 1 verificacion y-validacion
Unidad 1 verificacion y-validacionJorge Daza Gómez
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaRolf Pinto
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2Humano Terricola
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemaUniversidad Tecnológica
 
Ingeniería de requisitos e ingeniería de requerimientos
Ingeniería de requisitos e ingeniería de requerimientosIngeniería de requisitos e ingeniería de requerimientos
Ingeniería de requisitos e ingeniería de requerimientosCesar Prado
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPUIvan Porras
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Yaskelly Yedra
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.LuiS YmAY
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosSergio Sanchez
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 

La actualidad más candente (20)

Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
 
Metricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccionMetricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccion
 
Formato ieee830(srs lleno)
Formato ieee830(srs lleno)Formato ieee830(srs lleno)
Formato ieee830(srs lleno)
 
Operaciones Sobre Procesos
Operaciones Sobre ProcesosOperaciones Sobre Procesos
Operaciones Sobre Procesos
 
Modelo requisitos UML
Modelo requisitos UMLModelo requisitos UML
Modelo requisitos UML
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
 
Unidad 1 verificacion y-validacion
Unidad 1 verificacion y-validacionUnidad 1 verificacion y-validacion
Unidad 1 verificacion y-validacion
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad Algoritmica
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistema
 
Proceso de diseño
Proceso de diseñoProceso de diseño
Proceso de diseño
 
Ingeniería de requisitos e ingeniería de requerimientos
Ingeniería de requisitos e ingeniería de requerimientosIngeniería de requisitos e ingeniería de requerimientos
Ingeniería de requisitos e ingeniería de requerimientos
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 

Destacado (20)

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
 
Analizadores Sintácticos
Analizadores SintácticosAnalizadores Sintácticos
Analizadores Sintácticos
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
 
GRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUASGRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUAS
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Claselexico
ClaselexicoClaselexico
Claselexico
 
Analizador LÉxico
Analizador LÉxicoAnalizador LÉxico
Analizador LÉxico
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
Compiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de TransicionesCompiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de Transiciones
 
Compiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico ConceptosCompiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico Conceptos
 
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
 
Funciones sintácticas
Funciones sintácticasFunciones sintácticas
Funciones sintácticas
 
Sistemas Del Lenguaje
Sistemas Del LenguajeSistemas Del Lenguaje
Sistemas Del Lenguaje
 
Sintactica Semantica y Pragmatica
Sintactica  Semantica y PragmaticaSintactica  Semantica y Pragmatica
Sintactica Semantica y Pragmatica
 
Normas Linguisticas
Normas LinguisticasNormas Linguisticas
Normas Linguisticas
 
5. SINTAXIS DE LA IMAGEN. RELACIONES COMPOSITIVAS
5.  SINTAXIS DE LA IMAGEN. RELACIONES COMPOSITIVAS5.  SINTAXIS DE LA IMAGEN. RELACIONES COMPOSITIVAS
5. SINTAXIS DE LA IMAGEN. RELACIONES COMPOSITIVAS
 
Nivel sintáctico
Nivel sintácticoNivel sintáctico
Nivel sintáctico
 
La oracion
La oracionLa oracion
La oracion
 

Similar a ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS

Similar a ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS (20)

Capitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazarCapitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazar
 
Analizador sintáctico
Analizador sintácticoAnalizador sintáctico
Analizador sintáctico
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
 
investigacion.pdf
investigacion.pdfinvestigacion.pdf
investigacion.pdf
 
investigacion 4.4 y 4.5.pdf
investigacion 4.4 y 4.5.pdfinvestigacion 4.4 y 4.5.pdf
investigacion 4.4 y 4.5.pdf
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semantico
 
Analisis semantico 06 06-2019 galarraga
Analisis semantico  06 06-2019 galarragaAnalisis semantico  06 06-2019 galarraga
Analisis semantico 06 06-2019 galarraga
 
Análisis Sintáctico
Análisis SintácticoAnálisis Sintáctico
Análisis Sintáctico
 
Analisis lexico
Analisis lexicoAnalisis lexico
Analisis lexico
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
 
Taller análisis sintáctico
Taller análisis sintácticoTaller análisis sintáctico
Taller análisis sintáctico
 
Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico
 
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemas
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
ANALISIS SEMANTICO
ANALISIS SEMANTICO ANALISIS SEMANTICO
ANALISIS SEMANTICO
 
Compilador2
Compilador2Compilador2
Compilador2
 
Analisis Semantico Taller 1 Parcial 2
Analisis Semantico Taller 1 Parcial 2Analisis Semantico Taller 1 Parcial 2
Analisis Semantico Taller 1 Parcial 2
 
Tratamiento de errores
Tratamiento de erroresTratamiento de errores
Tratamiento de errores
 
Compiladores
CompiladoresCompiladores
Compiladores
 

Más de Infomania pro

Clase10 ejemplos asm con tasm y tlink
Clase10 ejemplos asm con tasm y tlinkClase10 ejemplos asm con tasm y tlink
Clase10 ejemplos asm con tasm y tlinkInfomania pro
 
Clase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorClase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorInfomania pro
 
Clase8 3 ejemplo analisis lexico-sintactico miniugb
Clase8 3 ejemplo analisis lexico-sintactico miniugbClase8 3 ejemplo analisis lexico-sintactico miniugb
Clase8 3 ejemplo analisis lexico-sintactico miniugbInfomania pro
 
Clase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini devClase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini devInfomania pro
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppInfomania pro
 
Clase analisis lexico
Clase analisis lexicoClase analisis lexico
Clase analisis lexicoInfomania pro
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoInfomania pro
 
Test1 de Compiladores
Test1 de CompiladoresTest1 de Compiladores
Test1 de CompiladoresInfomania pro
 
Compiladores clase02
Compiladores clase02Compiladores clase02
Compiladores clase02Infomania pro
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosInfomania pro
 
Mapa mental y esquemas
Mapa mental y esquemasMapa mental y esquemas
Mapa mental y esquemasInfomania pro
 
Clase2 introduccion-compiladores-interpretes
Clase2 introduccion-compiladores-interpretesClase2 introduccion-compiladores-interpretes
Clase2 introduccion-compiladores-interpretesInfomania pro
 
Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretesInfomania pro
 
Compilador: DEFINICIÓN
Compilador: DEFINICIÓNCompilador: DEFINICIÓN
Compilador: DEFINICIÓNInfomania pro
 

Más de Infomania pro (18)

Clase10 ejemplos asm con tasm y tlink
Clase10 ejemplos asm con tasm y tlinkClase10 ejemplos asm con tasm y tlink
Clase10 ejemplos asm con tasm y tlink
 
Manual80x86
Manual80x86Manual80x86
Manual80x86
 
Clase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorClase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensamblador
 
Clase09 guia1-as
Clase09 guia1-asClase09 guia1-as
Clase09 guia1-as
 
Clase8 3 ejemplo analisis lexico-sintactico miniugb
Clase8 3 ejemplo analisis lexico-sintactico miniugbClase8 3 ejemplo analisis lexico-sintactico miniugb
Clase8 3 ejemplo analisis lexico-sintactico miniugb
 
Clase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini devClase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini dev
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cpp
 
Clase analisis lexico
Clase analisis lexicoClase analisis lexico
Clase analisis lexico
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexico
 
Test1 de Compiladores
Test1 de CompiladoresTest1 de Compiladores
Test1 de Compiladores
 
Compiladores clase02
Compiladores clase02Compiladores clase02
Compiladores clase02
 
Tabla simbolos
Tabla simbolosTabla simbolos
Tabla simbolos
 
TABLA DE SÍMBOLOS
TABLA DE SÍMBOLOSTABLA DE SÍMBOLOS
TABLA DE SÍMBOLOS
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptos
 
Mapa mental y esquemas
Mapa mental y esquemasMapa mental y esquemas
Mapa mental y esquemas
 
Clase2 introduccion-compiladores-interpretes
Clase2 introduccion-compiladores-interpretesClase2 introduccion-compiladores-interpretes
Clase2 introduccion-compiladores-interpretes
 
Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretes
 
Compilador: DEFINICIÓN
Compilador: DEFINICIÓNCompilador: DEFINICIÓN
Compilador: DEFINICIÓN
 

Último

PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 

Último (20)

PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 

ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS

  • 1. CLASE#07: ANALIZADOR SINTÁCTICO 1 UNIVERSIDAD “GERARDO BARRIOS” COMPILADORES E INTÉRPRETES CICLO I – 2016 DOCENTE: ING. MARVIN OSMARO PARADA CLASE # 07 UNIDAD 3 ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS OBJETIVOS Complementar conceptos teóricos del análisis Léxico y Sintáctico. Estudiar el código fuente de un programa prototipo de análisis Léxico y Sintáctico desarrollado. DESARROLLO TEMATICO La mayor parte de este tema está dedicada a los métodos de análisis sintáctico de uso típico en compiladores. Primero se introducen los conceptos básicos, después las técnicas adecuadas para la aplicación manual. Además como los programas pueden contener errores sintácticos, los métodos de análisis sintáctico se pueden ampliar para que se recuperen de los errores sintácticos más frecuentes. ¿QUÉ ES EL ANALIZADOR SINTÁCTICO? Es la fase del analizador que se encarga de chequear el texto de entrada en base a una gramática dada. Y en caso de que el programa de entrada sea válido, suministra el árbol sintáctico que lo reconoce. El análisis sintáctico es un análisis a nivel de sentencias, y es mucho más complejo que el análisis léxico. Su función es tomar el programa fuente en forma de tokens, que recibe del analizador léxico, y determinar la estructura de las sentencias del programa. Este proceso es similar a determinar la estructura de una frase en castellano, determinando quien es el sujeto, predicado, el verbo y los complementos. El análisis sintáctico agrupa a los tokens en clases sintácticas (denominadas no terminales en la definición de la gramática), tales como expresiones, procedimientos, etc. En teoría, se supone que la salida del analizador sintáctico es alguna representación del árbol sintáctico que reconoce la secuencia de tokens suministrada por el analizador léxico. El analizador sintáctico o parser obtiene un árbol sintáctico (u otra estructura equivalente) en la cual las hojas son los tokens, y cualquier nodo que no sea una hoja, representa un tipo de clase sintáctica (operaciones). Por ejemplo el análisis sintáctico de la siguiente expresión: (A+B)*(C+D) Con las reglas de la gramática que se presenta a continuación dará lugar al árbol sintáctico EJEMPLO <expresión> ::= <término> <más términos> <más términos>::= +<término> <más términos>| - <término> <más términos> | <vacío> <término> ::= <factor> <más factores> <más factores>::= * <factor> <más factores>|/ <factor> <más factores> | <vacío> <factor> ::= ( <expresión> ) | <variable> | <constante> La estructura de la gramática anterior refleja la prioridad de los operadores, así los operadores “+” y “-” tienen la prioridad más baja, mientras que “*” y “/” tienen una prioridad superior. Se evaluaran en primer lugar las constantes, variables y expresiones entre paréntesis. Los árboles sintácticos se construyen con un conjunto de reglas conocidas como gramática, y que definen con total precisión el lenguaje fuente. Al proceso de reconocer la estructura del lenguaje fuente se conoce con el nombre de análisis sintáctico (parsing). La principal tarea del analizador sintáctico no es comprobar que la sintaxis del programa fuente sea correcta, sino construir una representación interna de ese programa y en el caso en que sea un programa incorrecto, dar un mensaje de error.
  • 2. CLASE#07: ANALIZADOR SINTÁCTICO 2 EL ANALIZADOR SINTÁCTICO (ASN) comprueba que el orden en que el analizador léxico le va entregando los tokens es válido. Si esto es así significará que la sucesión de símbolos que representan dichos tokens puede ser generada por la gramática correspondiente al lenguaje del código fuente. La forma más habitual de representar la sintaxis de un programa es el árbol de análisis sintáctico, y lo que hacen los analizadores sintácticos es construir una derivación por la izquierda o por la derecha del programa fuente, que en realidad son dos recorridos determinados del árbol de análisis sintáctico. A partir de ese recorrido el analizador sintáctico debe construir una representación intermedia de ese programa fuente: un árbol sintáctico abstracto o bien un programa en un lenguaje intermedio; por este motivo, es muy importante que la gramática esté bien diseñada, e incluso es frecuente rediseñar la gramática original para facilitar la tarea de obtener la representación intermedia mediante un analizador sintáctico concreto. El ASN constituye el esqueleto principal del compilador. Habitualmente el analizador léxico se implementa como una rutina dentro del sintáctico, al que devuelve el siguiente token que encuentre en el buffer de entrada cada vez que éste se lo pide. Así mismo, gran parte del resto de etapas de un programa traductor están integradas de una u otra forma en el analizador sintáctico. LAS PRINCIPALES FUNCIONES SON: Identificar cada tipo de instrucción y sus componentes. – Completar la Tabla de Símbolo s. – Realizar comprobaciones estáticas: • Se realizan durante la compilación del programa. • Ejemplos: comp. de tipos, unicidad de etiquetas e identificadores, etc. – Realizar comprobaciones dinámicas: • Aquellas que el compilador incorpora al programa traducido. • Hacen referencia a aspectos que sólo pueden ser conocidos en tiempo de ejecución • Dependientes del estado de la máquina en la ejecución o del propio programa. – Validar las declaraciones de identificadores: en muchos lenguajes no se puede usar una variable si no ha sido declarada con anterioridad. Hay distintas clases de analizadores o reconocedores sintácticos, pero en general se clasifican en 2 grandes grupos: A.S. Ascendentes y A.S. Descendentes. TIPOS DE ANÁLISIS SINTÁCTICOS Desde el punto de vista de la teoría de Análisis Sintáctico, hay dos estrategias para construir el árbol sintáctico: Análisis descendente: partimos de la raíz del árbol (donde estará situado el axioma o símbolo inicial de la gramática) y se van aplicando reglas por la izquierda de forma que se obtiene una derivación por la izquierda de la cadena de entrada. Para decidir qué regla aplicar, se lee un token de la entrada. Recorriendo el árbol de análisis sintáctico resultante, en profundidad de izquierda a derecha, encontraremos en las hojas del árbol los tokens que nos devuelve el Analizador Léxico (A.L.) en ese mismo orden. Análisis ascendente: partiendo de la cadena de entrada, se construye el árbol de análisis sintáctico empezando por las hojas (donde están los tokens) y se van creando nodos intermedios hasta llegar a la raíz (hasta el símbolo inicial), construyendo así el árbol de abajo a arriba. El recorrido del árbol se hará desde las hojas hasta la raíz. El orden en el que se van encontrando las producciones corresponde a la inversa de una derivación por la derecha. Las dos estrategias recorren la cadena de entrada de izquierda a derecha una sola vez, y necesitan (para que el análisis sea eficiente) que la gramática no sea ambigua. Para ello, el analizador sintáctico (A.S.) comprueba que el orden en que el analizador léxico le va entregando los tokens es válido. Si esto es así significará que la sucesión de símbolos que representan dichos tokens puede ser generada por la gramática correspondiente al lenguaje del código fuente.
  • 3. CLASE#07: ANALIZADOR SINTÁCTICO 3 MANEJO DE ERRORES SINTÁCTICOS Si un compilador tuviera que procesar sólo programas correctos, su diseño e implantación se simplificarían mucho. Pero los programadores a menudo escriben programas incorrectos, y un buen compilador debería ayudar al programador a identificar y localizar errores. Es más, considerar desde el principio el manejo de errores puede simplificar la estructura de un compilador y mejorar su respuesta a los errores. Los errores en la programación pueden ser de los siguientes tipos: • Léxicos, producidos al escribir mal un identificador, una palabra clave o un operador. • Sintácticos, por una expresión aritmética o paréntesis no equilibrados. • Semánticos, como un operador aplicado a un operando incompatible. • Lógicos, puede ser una llamada infinitamente recursiva. El manejo de errores de sintaxis es el más complicado desde el punto de vista de la creación de compiladores. Nos interesa que cuando el compilador encuentre un error, se recupere y siga buscando errores. Por lo tanto el manejador de errores de un analizador sintáctico debe tener como objetivos: • Indicar los errores de forma clara y precisa. Aclarar el tipo de error y su localización. • Recuperarse del error, para poder seguir examinando la entrada. • No ralentizar significativamente la compilación. Un buen compilador debe hacerse siempre teniendo también en mente los errores que se pueden producir; con ello se consigue: • Simplificar la estructura del compilador. • Mejorar la respuesta ante los errores. Tenemos varias estrategias para corregir errores, una vez detectados: • Ignorar el problema (Panic mode ): Consiste en ignorar el resto de la entrada hasta llegar a una condición de seguridad. Una condición tal se produce cuando nos encontramos un token especial (por ejemplo un ‘;’o un ‘END’).A partir de este punto se sigue analizando normalmente. • Recuperación a nivel de frase: Intenta recuperar el error una vez descubierto. En el caso anterior, por ejemplo, podría haber sido lo suficientemente inteligente como para insertar el token ‘;’. Hay que tener cuidado con este método, pues puede dar lugar a recuperaciones infinitas. GRAMÁTICAS DE ATRIBUTOS. Una gramática de atributos es una gramática libre de contexto cuyos símbolos pueden tener asociados atributos y las producciones pueden tener asociadas reglas de evaluación de los atributos. En la creación de compiladores se utilizan ecuaciones de atributos o reglas semánticas como método para expresar la relación entre el cálculo de los atributos y las reglas del lenguaje. Cada producción (regla sintáctica) tiene asociada una acción semántica que se aplica cuando se realiza una reducción en el análisis sintáctico ascendente. Atributo: propiedad de una construcción de un lenguaje. Pueden variar mucho en cuanto a información que contienen o tiempo que tardan en determinarse durante la traducción/ejecución. Cada símbolo (terminal o no terminal) puede tener asociado un número finito de atributos. Ejemplos de atributos: – Tipo de una variable – Valor de una expresión – Ubicación en memoria de una variable – Código objeto de un procedimiento – Número de dígitos significativos en un número
  • 4. CLASE#07: ANALIZADOR SINTÁCTICO 4 UNIVERSIDAD “GERARDO BARRIOS” COMPILADORES E INTÉRPRETES CICLO I – 2016 DOCENTE: ING. MARVIN OSMARO PARADA LABORATORIO 2 COMPUTO II – TEÓRICO 50% ALUMNO FIRMA INDICACIÓN. REUNIRSE EN GRUPO DE TRES INTEGRANTES y RESPONDER A LAS SIGUIENTES PREGUNTAS, ENTREGAR EL INFORME AL DOCENTE 1. Que es un árbol sintáctico 2. Cuál es la salida del analizar sintáctico 3. En que cosiste la gramáticas de atributos 4. Cuál es la principal tarea del analizador sintáctico 5. Que son los atributos, menciona algunos ejemplos 6. Cuál es la función principal del analizador sintáctico 7. Cuáles son los tipos de análisis sintáctico, explica cada uno 8. Como interactúa el manejo de errores en la fase de análisis sintáctico 9. Define con tus propias palabras en que consiste un analizador sintáctico 10.Cuáles suelen será los errores más comunes en la programación de esta fase