SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
Pontificia Universidad Católica del Ecuador
Sede Ibarra
Byron Chicaiza
5to Sistemas
8 de Mayo de 2014
¿QUE ES EL ANALIZADOR SINTACTICO?
Un analizador sintáctico ( Parser ) es un programa que reconoce si una o varias
cadenas de caracteres forman parte de un determinado lenguaje. Los lenguajes
habitualmente reconocidos por los analizadores sintácticos son los lenguajes libres de
contexto.
Agrupa los tokens del programa fuente en frases gramaticales que el compilador usará
en las siguientes etapas.
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.
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.
ANÁLISIS SINTÁCTICO DESCENDENTE
En éste analizador las entradas son de izquierda a derecha, y construcciones de
derivaciones por la izquierda de una sentencia o enunciado.
CARÁCTERISTICAS
El análisis sintáctico descendente (ASD) intenta encontrar entre las producciones de la
gramática la derivación por la izquierda del símbolo inicial para una cadena de
entrada.
Parte del axioma de la gramática.
Procesa la entrada de izquierda a derecha.
Escoge reglas gramaticales.
Bueno primeramente para trabajar el análisis sintáctico descendente se debe realizar
primeramente algunas operaciones para que la gramática sea LL1 las cuales son:
- ELIMINAR AMBIGUEDAD: Para eliminar la ambigüedad se debe reescribir la
gramática.
- ELIMINAR RECURSIVIDAD POR LA IZQUIERDA: Una gramática es recursiva por la
izquierda si tiene un nodo Terminal a tal que existe una derivación A->Aα para alguna
cadena . Es decir por simple observación podemos identificar.
Para eliminar la recursividad por la izquierda se utiliza la siguiente formula.
- Factorizar: Se trata de rescribir las producciones de la gramática con igual comienzo
para retrasar la decisión hasta haber visto lo suficiente de la entrada como para elegir
la opción correcta.
Ejemplo:
• Análisis Sintáctico Descendente Con Retroceso.
El método parte del axioma inicial y aplica todas las posibles reglas al no terminal más
a la izquierda.
• Se usa el retroceso para resolver la incertidumbre.
• Sencillo de implementar.
• Muy eficiente.
Ejemplo:
• Análisis Sintáctico Descendente Predictivo (Asdp)
El analizador debe realizar la previsión de la regla a aplicar sólo con ver el primer
símbolo que produce para que el algoritmo tenga una complejidad lineal.
Las gramáticas que son susceptibles de ser analizadas sintácticamente de forma
descendente mediante un análisis predictivo y consultando un únicamente un símbolo
de entrada pertenecen al grupo LL(1).
A partir de gramáticas LL(1) se pueden construir analizadores sintácticos
descendentes predictivos (ASDP), que son ASD sin retroceso.
Ejemplo:
ANÁLISIS SINTÁCTICO ASCENDENTE
El objetivo de un análisis ascendente consiste en construir el árbol sintáctico desde
abajo hacia arriba, esto es, desde los tokens hacia el axioma inicial, lo cual disminuye
el número de reglas mal aplicadas con respecto al caso descendente (si hablamos del
caso con retroceso) o amplía el número de gramáticas susceptibles de ser analizadas
(si hablamos del caso LL(1)).
• Análisis ascendente con retroceso
Al igual que ocurría con el caso descendente, este tipo de análisis intenta probar todas
las posibles operaciones (reducciones y desplazamientos) mediante un método de
fuerza bruta, hasta llegar al árbol sintáctico, o bien agotar todas las opciones, en cuyo
caso la cadena se rechaza.
En el análisis con retroceso no se permiten las reglas ԑ, puesto que estas se podrán
aplicar de forma indefinida.
• Análisis Ascendente sin Retroceso
El análisis ascendente sin retroceso busca una derivación derecha de la cadena de
entrada de forma determinista.
Este se sustenta en su aplicación a las gramáticas LR(K).
La L viene de la lectura de la cadena de entrada de izquierda a derecha.
La R de producir un árbol de derivación derecho.
La k indica el número de símbolos que es necesario leer a la entrada para tomar la
decisión de qué producción emplear.
Un parser del tipo shift-reduce puede verse como un autómata de pila determinista
extendido que realiza el análisis de abajo hacia arriba.
Dada una cadena de entrada w, simula una derivación más a la derecha.
¿Cuál es su diferencia?
• En el análisis sintáctico descendente: se construye el árbol sintáctico arriba hacia
abajo y se utiliza más reglas.
• En el análisis sintáctico ascendente: se construye el árbol sintáctico de abajo hacia
arriba, lo cual disminuye el número de reglas mal aplicadas con respecto al caso
descendente.
Análisis semántico y tratamiento de errores.
La fase de análisis semántico revisa el programa fuente para tratar de encontrar
errores semánticos y reúne la información sobre los tipos para la fase posterior de
generación de código. En ella se utiliza la estructura jerárquica determinada por la fase
de análisis sintáctico para identificador los operadores y operandos de expresiones y
proposiciones.
Clasificación
Dinámica: Aspectos que solo pueden ser conocidos en tiempos de ejecución.
Estática: Aspectos que solo pueden ser controlados en tiempo de compilación.
Verificación de Tipos: el compilador verifica si cada operador tiene operandos
permitidos por la especificación del lenguaje fuente.
TRATAMIENTO DE ERRORES
Los errores encontrados en las distintas fases de análisis se envían a un módulo
denominado manejo de errores. En el caso más sencillo puede ser un subprograma al
que se le invoca enviándole el código de error, y que se encarga de escribir un
mensaje con el error correspondiente, y el número de línea donde se ha producido, así
como de cortar el proceso de traducción.
TIPOS DE ERRORES
Tipos de errores que suelen ocurrir (dependiendo de la fase):
Léxicos: No concuerda con ninguna ER.
Ejemplo: escribir mal una palabra clave
Sintácticos: La estructura que se ha seguido no es correcta.
Ejemplo: expresión con paréntesis no emparejados
Semánticos: La estructura está bien pero hay errores de significado Ejemplo:
operador y operandos incompatibles.
Lógicos: Los comete el programador
Ejemplo: una llamada infinitamente recursiva
Árboles Sintácticos
Es una clase especial de árbol, se le denomina Árbol Sintáctico es una forma
condensada de un árbol de análisis sintáctico, útil para representar instrucciones de
lenguajes. Un árbol sintáctico permite demostrar que una secuencia de caracteres es
una determinada categoría sintáctica. Llevan su nombre en base a la función que
cumple, donde cada nodo representa una operación y los hijos de un nodo son los
argumentos de la operación.
Un árbol sintáctico puede cumplir tres funciones diferentes:
Comprobar el orden en que llegan los tokens (componente léxico es una cadena de
caracteres)
Construir una representación del programa fuente.
Si es sintácticamente correcto generar el error
Un Árbol Sintáctico bien realizado se caracteriza por ser una representación abstracta
que va desde las sub-categorías hasta la categoría general, por constar de operadores
en nodos no terminales y operandos en nodos terminales.
Qué es el análisis sintáctico

Más contenido relacionado

La actualidad más candente

Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Metodología orientadas a objetos
Metodología orientadas a objetosMetodología orientadas a objetos
Metodología orientadas a objetosyolandacando1
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcionalAlejandra MA
 
Programación del lado del cliente
Programación del lado del clienteProgramación del lado del cliente
Programación del lado del clienteGabriel Mondragón
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2Humano Terricola
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARESAnel Sosa
 
Tema manejo de la entrada
Tema manejo de la entradaTema manejo de la entrada
Tema manejo de la entradaSasil Catzim
 
Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Humano Terricola
 
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
 
3.1 Representación de conocimiento mediante reglas.pptx
3.1 Representación de conocimiento mediante reglas.pptx3.1 Representación de conocimiento mediante reglas.pptx
3.1 Representación de conocimiento mediante reglas.pptxRam Vazquez
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensambladoriagardea
 

La actualidad más candente (20)

Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Programacion Funcional
Programacion FuncionalProgramacion Funcional
Programacion Funcional
 
Metodología orientadas a objetos
Metodología orientadas a objetosMetodología orientadas a objetos
Metodología orientadas a objetos
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcional
 
Programación del lado del cliente
Programación del lado del clienteProgramación del lado del cliente
Programación del lado del cliente
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2
 
Automatas de pila
Automatas de pilaAutomatas de pila
Automatas de pila
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Tema manejo de la entrada
Tema manejo de la entradaTema manejo de la entrada
Tema manejo de la entrada
 
Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1
 
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
 
3.1 Representación de conocimiento mediante reglas.pptx
3.1 Representación de conocimiento mediante reglas.pptx3.1 Representación de conocimiento mediante reglas.pptx
3.1 Representación de conocimiento mediante reglas.pptx
 
Proyecto fernando compiladores 1
Proyecto fernando compiladores 1Proyecto fernando compiladores 1
Proyecto fernando compiladores 1
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Analisis Semantico
Analisis Semantico Analisis Semantico
Analisis Semantico
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 

Similar a Qué es el análisis sintáctico

ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexicoJhampier_Piedra
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintacticoPUCESI
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintacticoalexisdario
 
Análisis Sintáctico Ascendente - Descendente
Análisis Sintáctico Ascendente - DescendenteAnálisis Sintáctico Ascendente - Descendente
Análisis Sintáctico Ascendente - DescendenteGuiru Xd
 
Analizadores Sintácticos
Analizadores SintácticosAnalizadores Sintácticos
Analizadores SintácticosBryant Arellano
 
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
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabrielEnrique Morales
 
Analisis sintactico actividad 15
Analisis sintactico actividad 15Analisis sintactico actividad 15
Analisis sintactico actividad 15AndresDvila
 
Actividad 2 Programación de Sistemas.
Actividad 2 Programación de Sistemas.Actividad 2 Programación de Sistemas.
Actividad 2 Programación de Sistemas.Dispositivosmoviles
 

Similar a Qué es el análisis sintáctico (20)

Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Análisis Sintáctico
Análisis SintácticoAnálisis Sintáctico
Análisis Sintáctico
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Gramaticas
GramaticasGramaticas
Gramaticas
 
T37 isc zaraos vazquez jorge alejandro
T37 isc zaraos vazquez jorge alejandroT37 isc zaraos vazquez jorge alejandro
T37 isc zaraos vazquez jorge alejandro
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Capitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazarCapitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazar
 
Analisis lexico
Analisis lexicoAnalisis lexico
Analisis lexico
 
Análisis Sintáctico Ascendente - Descendente
Análisis Sintáctico Ascendente - DescendenteAnálisis Sintáctico Ascendente - Descendente
Análisis Sintáctico Ascendente - Descendente
 
Compilador2
Compilador2Compilador2
Compilador2
 
Analizadores Sintácticos
Analizadores SintácticosAnalizadores Sintácticos
Analizadores Sintácticos
 
Analizador sintáctico
Analizador sintácticoAnalizador sintáctico
Analizador sintáctico
 
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
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabriel
 
Analisis lexico automatas i
Analisis lexico automatas iAnalisis lexico automatas i
Analisis lexico automatas i
 
Analisis sintactico actividad 15
Analisis sintactico actividad 15Analisis sintactico actividad 15
Analisis sintactico actividad 15
 
Actividad 2 Programación de Sistemas.
Actividad 2 Programación de Sistemas.Actividad 2 Programación de Sistemas.
Actividad 2 Programación de Sistemas.
 

Más de Bayo Chicaiza

Instalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y MingwInstalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y MingwBayo Chicaiza
 
Compiladores byron chicaiza
Compiladores byron chicaizaCompiladores byron chicaiza
Compiladores byron chicaizaBayo Chicaiza
 
Lenguajes de Programacion
Lenguajes de ProgramacionLenguajes de Programacion
Lenguajes de ProgramacionBayo Chicaiza
 

Más de Bayo Chicaiza (6)

Instalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y MingwInstalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y Mingw
 
Bison y flex
Bison y flexBison y flex
Bison y flex
 
Compiladores byron chicaiza
Compiladores byron chicaizaCompiladores byron chicaiza
Compiladores byron chicaiza
 
Decompiladores
Decompiladores Decompiladores
Decompiladores
 
Lenguajes de Programacion
Lenguajes de ProgramacionLenguajes de Programacion
Lenguajes de Programacion
 
Investigacion
InvestigacionInvestigacion
Investigacion
 

Qué es el análisis sintáctico

  • 1. Pontificia Universidad Católica del Ecuador Sede Ibarra Byron Chicaiza 5to Sistemas 8 de Mayo de 2014 ¿QUE ES EL ANALIZADOR SINTACTICO? Un analizador sintáctico ( Parser ) es un programa que reconoce si una o varias cadenas de caracteres forman parte de un determinado lenguaje. Los lenguajes habitualmente reconocidos por los analizadores sintácticos son los lenguajes libres de contexto. Agrupa los tokens del programa fuente en frases gramaticales que el compilador usará en las siguientes etapas. 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. 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. ANÁLISIS SINTÁCTICO DESCENDENTE En éste analizador las entradas son de izquierda a derecha, y construcciones de derivaciones por la izquierda de una sentencia o enunciado. CARÁCTERISTICAS El análisis sintáctico descendente (ASD) intenta encontrar entre las producciones de la gramática la derivación por la izquierda del símbolo inicial para una cadena de entrada. Parte del axioma de la gramática. Procesa la entrada de izquierda a derecha. Escoge reglas gramaticales. Bueno primeramente para trabajar el análisis sintáctico descendente se debe realizar primeramente algunas operaciones para que la gramática sea LL1 las cuales son: - ELIMINAR AMBIGUEDAD: Para eliminar la ambigüedad se debe reescribir la gramática. - ELIMINAR RECURSIVIDAD POR LA IZQUIERDA: Una gramática es recursiva por la izquierda si tiene un nodo Terminal a tal que existe una derivación A->Aα para alguna cadena . Es decir por simple observación podemos identificar. Para eliminar la recursividad por la izquierda se utiliza la siguiente formula. - Factorizar: Se trata de rescribir las producciones de la gramática con igual comienzo para retrasar la decisión hasta haber visto lo suficiente de la entrada como para elegir
  • 2. la opción correcta. Ejemplo: • Análisis Sintáctico Descendente Con Retroceso. El método parte del axioma inicial y aplica todas las posibles reglas al no terminal más a la izquierda. • Se usa el retroceso para resolver la incertidumbre. • Sencillo de implementar. • Muy eficiente. Ejemplo: • Análisis Sintáctico Descendente Predictivo (Asdp) El analizador debe realizar la previsión de la regla a aplicar sólo con ver el primer símbolo que produce para que el algoritmo tenga una complejidad lineal. Las gramáticas que son susceptibles de ser analizadas sintácticamente de forma descendente mediante un análisis predictivo y consultando un únicamente un símbolo de entrada pertenecen al grupo LL(1). A partir de gramáticas LL(1) se pueden construir analizadores sintácticos descendentes predictivos (ASDP), que son ASD sin retroceso. Ejemplo: ANÁLISIS SINTÁCTICO ASCENDENTE El objetivo de un análisis ascendente consiste en construir el árbol sintáctico desde abajo hacia arriba, esto es, desde los tokens hacia el axioma inicial, lo cual disminuye
  • 3. el número de reglas mal aplicadas con respecto al caso descendente (si hablamos del caso con retroceso) o amplía el número de gramáticas susceptibles de ser analizadas (si hablamos del caso LL(1)). • Análisis ascendente con retroceso Al igual que ocurría con el caso descendente, este tipo de análisis intenta probar todas las posibles operaciones (reducciones y desplazamientos) mediante un método de fuerza bruta, hasta llegar al árbol sintáctico, o bien agotar todas las opciones, en cuyo caso la cadena se rechaza. En el análisis con retroceso no se permiten las reglas ԑ, puesto que estas se podrán aplicar de forma indefinida. • Análisis Ascendente sin Retroceso El análisis ascendente sin retroceso busca una derivación derecha de la cadena de entrada de forma determinista. Este se sustenta en su aplicación a las gramáticas LR(K). La L viene de la lectura de la cadena de entrada de izquierda a derecha. La R de producir un árbol de derivación derecho. La k indica el número de símbolos que es necesario leer a la entrada para tomar la decisión de qué producción emplear. Un parser del tipo shift-reduce puede verse como un autómata de pila determinista extendido que realiza el análisis de abajo hacia arriba. Dada una cadena de entrada w, simula una derivación más a la derecha. ¿Cuál es su diferencia? • En el análisis sintáctico descendente: se construye el árbol sintáctico arriba hacia abajo y se utiliza más reglas. • En el análisis sintáctico ascendente: se construye el árbol sintáctico de abajo hacia arriba, lo cual disminuye el número de reglas mal aplicadas con respecto al caso descendente. Análisis semántico y tratamiento de errores. La fase de análisis semántico revisa el programa fuente para tratar de encontrar errores semánticos y reúne la información sobre los tipos para la fase posterior de generación de código. En ella se utiliza la estructura jerárquica determinada por la fase de análisis sintáctico para identificador los operadores y operandos de expresiones y proposiciones. Clasificación Dinámica: Aspectos que solo pueden ser conocidos en tiempos de ejecución. Estática: Aspectos que solo pueden ser controlados en tiempo de compilación. Verificación de Tipos: el compilador verifica si cada operador tiene operandos permitidos por la especificación del lenguaje fuente.
  • 4. TRATAMIENTO DE ERRORES Los errores encontrados en las distintas fases de análisis se envían a un módulo denominado manejo de errores. En el caso más sencillo puede ser un subprograma al que se le invoca enviándole el código de error, y que se encarga de escribir un mensaje con el error correspondiente, y el número de línea donde se ha producido, así como de cortar el proceso de traducción. TIPOS DE ERRORES Tipos de errores que suelen ocurrir (dependiendo de la fase): Léxicos: No concuerda con ninguna ER. Ejemplo: escribir mal una palabra clave Sintácticos: La estructura que se ha seguido no es correcta. Ejemplo: expresión con paréntesis no emparejados Semánticos: La estructura está bien pero hay errores de significado Ejemplo: operador y operandos incompatibles. Lógicos: Los comete el programador Ejemplo: una llamada infinitamente recursiva Árboles Sintácticos Es una clase especial de árbol, se le denomina Árbol Sintáctico es una forma condensada de un árbol de análisis sintáctico, útil para representar instrucciones de lenguajes. Un árbol sintáctico permite demostrar que una secuencia de caracteres es una determinada categoría sintáctica. Llevan su nombre en base a la función que cumple, donde cada nodo representa una operación y los hijos de un nodo son los argumentos de la operación. Un árbol sintáctico puede cumplir tres funciones diferentes: Comprobar el orden en que llegan los tokens (componente léxico es una cadena de caracteres) Construir una representación del programa fuente. Si es sintácticamente correcto generar el error Un Árbol Sintáctico bien realizado se caracteriza por ser una representación abstracta que va desde las sub-categorías hasta la categoría general, por constar de operadores en nodos no terminales y operandos en nodos terminales.