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

Metricas del producto para el Software
Metricas del producto para el SoftwareMetricas del producto para el Software
Metricas del producto para el Software
Walter Tejerina
 
Extreme Programming-Fases
Extreme Programming-FasesExtreme Programming-Fases
Extreme Programming-Fases
Belghy Chisag
 
Metricas Ingenieria De Software
Metricas Ingenieria De SoftwareMetricas Ingenieria De Software
Metricas Ingenieria De Software
Ricardo
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
Barklyn Lsla
 
HA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUMLHA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUML
Erick Ortega Herrera
 
Agentes basados en objetos utilidad
Agentes basados en objetos utilidadAgentes basados en objetos utilidad
Agentes basados en objetos utilidad
Jose Trinidad Gonzalez Godina
 
Clasificación de los requerimientos
Clasificación de los requerimientosClasificación de los requerimientos
Clasificación de los requerimientosFSILSCA
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registrosMeztli Valeriano Orozco
 
Análisis de Requerimientos
Análisis de RequerimientosAnálisis de Requerimientos
Análisis de RequerimientosUTPL UTPL
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
UNIVERSIDAD PERUANA DE INVESTIGACIÓN Y NEGOCIOS
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
Angel Miguel Coria Lopez
 
Sistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de SistemasSistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de Sistemas
Uniminuto - San Francisco
 
1.3 lenguajes de simulacion y simuladores
1.3 lenguajes de simulacion y simuladores1.3 lenguajes de simulacion y simuladores
1.3 lenguajes de simulacion y simuladoresJoOsee Kette
 
Segmetación de instrucciones
Segmetación de instruccionesSegmetación de instrucciones
Segmetación de instrucciones
Lely
 
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
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
josecuartas
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
Anel Sosa
 
Unidad ii identificacion de los requerimientos
Unidad ii identificacion de los requerimientosUnidad ii identificacion de los requerimientos
Unidad ii identificacion de los requerimientosJesus Gallegos
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
Ares Atzarel Hernández Rodríguez
 
Portafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitosPortafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitos
Humano Terricola
 

La actualidad más candente (20)

Metricas del producto para el Software
Metricas del producto para el SoftwareMetricas del producto para el Software
Metricas del producto para el Software
 
Extreme Programming-Fases
Extreme Programming-FasesExtreme Programming-Fases
Extreme Programming-Fases
 
Metricas Ingenieria De Software
Metricas Ingenieria De SoftwareMetricas Ingenieria De Software
Metricas Ingenieria De Software
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
 
HA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUMLHA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUML
 
Agentes basados en objetos utilidad
Agentes basados en objetos utilidadAgentes basados en objetos utilidad
Agentes basados en objetos utilidad
 
Clasificación de los requerimientos
Clasificación de los requerimientosClasificación de los requerimientos
Clasificación de los requerimientos
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros
 
Análisis de Requerimientos
Análisis de RequerimientosAnálisis de Requerimientos
Análisis de Requerimientos
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Sistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de SistemasSistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de Sistemas
 
1.3 lenguajes de simulacion y simuladores
1.3 lenguajes de simulacion y simuladores1.3 lenguajes de simulacion y simuladores
1.3 lenguajes de simulacion y simuladores
 
Segmetación de instrucciones
Segmetación de instruccionesSegmetación de instrucciones
Segmetación de instrucciones
 
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
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Unidad ii identificacion de los requerimientos
Unidad ii identificacion de los requerimientosUnidad ii identificacion de los requerimientos
Unidad ii identificacion de los requerimientos
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
 
Portafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitosPortafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitos
 

Destacado

Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoangiepao1717
 
Analizadores Sintácticos
Analizadores SintácticosAnalizadores Sintácticos
Analizadores Sintácticos
Bryant Arellano
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
Bayo Chicaiza
 
GRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUASGRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUAS
Alejandro Bolaños Ussa
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintacticoalexisdario
 
Analizador LÉxico
Analizador LÉxicoAnalizador LÉxico
Analizador LÉxicoFARIDROJAS
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
bachispasaca
 
Compiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de TransicionesCompiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de Transiciones
Pedro Antonio Villalta (Pavillalta)
 
Compiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico ConceptosCompiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico Conceptos
Pedro Antonio Villalta (Pavillalta)
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico maryr_
 
Funciones sintácticas
Funciones sintácticasFunciones sintácticas
Funciones sintácticasXaverius
 
Sistemas Del Lenguaje
Sistemas Del LenguajeSistemas Del Lenguaje
Sistemas Del Lenguajecarminaperezc
 
Sintactica Semantica y Pragmatica
Sintactica  Semantica y PragmaticaSintactica  Semantica y Pragmatica
Sintactica Semantica y Pragmaticacarminaperezc
 
Normas Linguisticas
Normas LinguisticasNormas 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 COMPOSITIVASLuis Hernández Ibáñez
 
Nivel sintáctico
Nivel sintácticoNivel sintáctico
Nivel sintáctico
rocioyarmando
 

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

Analizador sintáctico
Analizador sintácticoAnalizador sintáctico
Analizador sintáctico
Eduardo Chavez Vasquez
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
JOSSELINEMARIBEL
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
Jhampier_Piedra
 
investigacion.pdf
investigacion.pdfinvestigacion.pdf
investigacion.pdf
UlicesPerez1
 
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
juanluisSanchez19
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semantico
Alvaro Cedeño
 
Analisis semantico 06 06-2019 galarraga
Analisis semantico  06 06-2019 galarragaAnalisis semantico  06 06-2019 galarraga
Analisis semantico 06 06-2019 galarraga
Fabricio Galárraga
 
Analisis lexico
Analisis lexicoAnalisis lexico
Analisis lexico
Wilman Kdnita
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
Infomania pro
 
Taller análisis sintáctico
Taller análisis sintácticoTaller análisis sintáctico
Taller análisis sintáctico
Anthony Benalcazar
 
Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico
Alex Toapanta
 
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemasJESSIKADG86
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
LuisMolina269
 
ANALISIS SEMANTICO
ANALISIS SEMANTICO ANALISIS SEMANTICO
ANALISIS SEMANTICO
MAURICIOANDRES39
 
Analisis Semantico Taller 1 Parcial 2
Analisis Semantico Taller 1 Parcial 2Analisis Semantico Taller 1 Parcial 2
Analisis Semantico Taller 1 Parcial 2
GLORIABELEN3
 
Tratamiento de errores
Tratamiento de erroresTratamiento de errores
Tratamiento de errores
JOSSELINEMARIBEL
 
Compiladores
CompiladoresCompiladores
Compiladores
Chocolatisima Cruperz
 

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 tlink
Infomania pro
 
Manual80x86
Manual80x86Manual80x86
Manual80x86
Infomania pro
 
Clase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorClase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensamblador
Infomania pro
 
Clase09 guia1-as
Clase09 guia1-asClase09 guia1-as
Clase09 guia1-as
Infomania 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 miniugb
Infomania 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 dev
Infomania pro
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cpp
Infomania pro
 
Clase analisis lexico
Clase analisis lexicoClase analisis lexico
Clase analisis lexico
Infomania pro
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexico
Infomania pro
 
Test1 de Compiladores
Test1 de CompiladoresTest1 de Compiladores
Test1 de Compiladores
Infomania pro
 
Compiladores clase02
Compiladores clase02Compiladores clase02
Compiladores clase02
Infomania pro
 
Tabla simbolos
Tabla simbolosTabla simbolos
Tabla simbolos
Infomania pro
 
TABLA DE SÍMBOLOS
TABLA DE SÍMBOLOSTABLA DE SÍMBOLOS
TABLA DE SÍMBOLOS
Infomania pro
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptos
Infomania pro
 
Mapa mental y esquemas
Mapa mental y esquemasMapa mental y esquemas
Mapa mental y esquemas
Infomania pro
 
Clase2 introduccion-compiladores-interpretes
Clase2 introduccion-compiladores-interpretesClase2 introduccion-compiladores-interpretes
Clase2 introduccion-compiladores-interpretes
Infomania pro
 
Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretes
Infomania pro
 
Compilador: DEFINICIÓN
Compilador: DEFINICIÓNCompilador: DEFINICIÓN
Compilador: DEFINICIÓN
Infomania 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

Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
YasneidyGonzalez
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
Ruben53283
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
arleyo2006
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
FelixCamachoGuzman
 
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIAFICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
JavierMontero58
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
sandradianelly
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
DivinoNioJess885
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
DIANADIAZSILVA1
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
rosannatasaycoyactay
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
TatianaVanessaAltami
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
GallardoJahse
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
Profes de Relideleón Apellidos
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 

Último (20)

Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
 
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIAFICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
FICHA DE EJERCICIOS GRECIA 1º DE LA ESO HISTORIA
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 

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