Analizador sintactico

Páginas: 5 (1083 palabras) Publicado: 10 de febrero de 2015
PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR
SEDE IBARRA
Nombre: Alexis Vilañez
Fecha: 03/05/13
Materia: Compiladores

ANALIZADOR SINTACTICO
El papel del analizador sintáctico:
El análisis sintáctico convierte el texto de entrada en otras estructuras (comúnmente árboles), que
son más útiles para el posterior análisis y capturan la jerarquía implícita de la entrada. Un
analizador léxicocrea tokens de una secuencia de caracteres de entrada y son estos tokens los que
son procesados por el analizador sintáctico para construir la estructura de datos, por ejemplo un
árbol de análisis o árboles de sintaxis abstracta.
El análisis sintáctico también es un estado inicial del análisis de frases de lenguaje natural. Es
usado para generar diagramas de lenguajes que usan flexióngramatical, como los idiomas
romances o el latín. Los lenguajes habitualmente reconocidos por los analizadores sintácticos son
los lenguajes libres de contexto. Cabe notar que existe una justificación formal que establece que
los lenguajes libres de contexto son aquellos reconocibles por un autómata de pila, de modo que
todo analizador sintáctico que reconozca un lenguaje libre de contexto esequivalente en
capacidad computacional a un autómata de pila.
Los analizadores sintácticos fueron extensivamente estudiados durante los años 70 del siglo XX,
detectándose numerosos patrones de funcionamiento en ellos, cosa que permitió la creación de
programas generadores de analizadores sintáticos a partir de una especificación de la sintaxis del
lenguaje en forma Backus-Naur por ejemplo, tales comoyacc, GNU bison y javaCC.

Análisis sintáctico ascendente y descendente
La tarea esencial de un analizador es determinar si una determinada entrada puede ser
derivada desde el símbolo inicial, usando las reglas de una gramática formal, y como hacer
esto, existen esencialmente dos formas:

Analizador sintáctico descendente (Top-Down-Parser): ..un analizador puede empezar con el
símboloinicial e intentar transformarlo en la entrada, intuitivamente esto sería ir dividiendo la
entrada progresivamente en partes cada vez más pequeñas, de esta forma funcionan los
analizadores LL, un ejemplo es el javaCC.
Analizador sintáctico ascendente (Bottom-Up-Parser): un analizador puede empezar con la
entrada e intentar llegar hasta el símbolo inicial, intuitivamente el analizador intentaencontrar los símbolos más pequeños y progresivamente construir la jerarquía de símbolos
hasta el inicial, los analizadores LR funcionan así y un ejemplo es el Yacc.
Otros tipos de analizadores son:
Analizador sintáctico descendente recursivo
Chart parser
Left corner parser
Analizador sintáctico LR
De la forma de construir el árbol sintáctico se desprenden dos tipos o clases de
analizadoressintácticos. Pueden ser descendentes o ascendente
• Descendentes : Parten del axioma inicial, y van efectuando derivaciones a izquierda hasta
obtener la secuencia de derivaciones que reconoce a la sentencia.
Pueden ser:
Con retroceso.
Con recursión.
LL(1)
• Ascendentes: Parten de la sentencia de entrada, y van aplicando reglas de producción
hacia atrás (desde el consecuente hasta elantecedente), hasta llegar al axioma inicial.
Pueden ser:
Con retroceso.
LR(1)

Análisis semántico y tratamiento de errores
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...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Analizador sintáctico
  • Analizador Lexico Y Sintactico C++
  • Analizadores Sintácticos Lr
  • Funciones del analizador y árbol sintáctico
  • Analizador Léxico y Sintáctico
  • Analizador léxico y sintáctico
  • Analizador Léxico-Sintáctico
  • Solución para un analizador sintáctico

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS