Academia.eduAcademia.edu

ANÁLISIS SINTÁCTICO

Abstract

 Comprobar que la secuencia de componentes léxicos cumple las reglas de la gramática  Generar el árbol sintáctico  Ventajas de utilizar gramáticas  Son especificaciones sintácticas y precisas de lenguajes  Se puede generar automáticamente un analizador  El proceso de construcción puede llevar a descubrir ambigüedades  Imparte estructura al lenguaje de programación, siendo más fácil generar código y detectar errores  Es más fácil ampliar y modificar el lenguaje 2 3 Analizador Sintáctico, Tipos  Tres tipos generales de analizadores sintácticos:  Métodos Universales: Cocke-Younger-Kasami y Earley  Sirven para cualquier gramática  Muy ineficientes  Descendentes (top-down)  Construyen el árbol de análisis sintáctico desde arriba (raíz, axioma) hasta abajo (hojas, terminales)  Analizadores Descendentes Recursivos  Analizadores LL(1) con tabla  Ascendentes (bottom-up)  Construyen el árbol de análisis sintáctico desde abajo hacia arriba  Analizadores de Precedencia de Operador  Analizadores LR(1) 4 Analizador Sintáctico  Tanto para el análisis descendente como para el ascendente:  La entrada se examina de izquierda a derecha, un símbolo cada vez  Trabajan con subclases de gramáticas  En general las gramáticas serán LL y LR  LR(k)  LL(k)  En la práctica solo se utilizan LR(1) y LL(1)  Muchos compiladores se llaman "parser-driven" debido a que el analizador sintáctico es el que llama al léxico  Existen herramientas para generar automáticamente analizadores sintácticos (YACC, Bison) 5 Análisis Sintáctico Descendente  Algoritmo 1. Poner el axioma como raíz del árbol de derivación 2. Hasta que solo haya símbolos terminales, derivar más a la izquierda