next up previous contents
Next: 1.1.1 El análisis incremental Up: 6.1 Introducción Previous: 6.1 Introducción

1.1 El análisis incremental no determinista

Dentro del mundo de la informática, el desarrollo de técnicas para el diseño de analizadores sintácticos siempre ha tenido especial relevancia, principalmente debido a su estrecha relación con el mundo de los compiladores. Desde hace años, se han estudiado en profundidad una serie de técnicas que permiten realizar de un modo eficiente el análisis sintáctico o parser de un texto fuente de un lenguaje. Entre estas técnicas podemos citar entre las más conocidas la LL(k) de carácter descendente y las distintas variantes de la técnica LR(k) de carácter ascendente. Las técnicas ascendentes se han mostrado como las más eficientes en el tratamiento de la entrada, y de entre éstas las LR(k) brillan con luz propia. De hecho YACC [Johnson 75, Mason y Brown 90, SunSoft 93, Aho et al. 90, Kerninghan y Pike 83], el conocido programa de generación de analizadores sintácticos ampliamente usado en el mundo Unix (generalmente en compañía del generador de analizadores léxicos conocido por LEX [Mason y Brown 90, SunSoft 93, Aho et al. 90]) implementa un algoritmo LALR, extrapolado directamente a partir de los LR(k).

Sin embargo, los principales desarrollos, incluido YACC, presentan dos características que limitan su aplicación: su caracter determinístico y no incremental.





Miguel A. Alonso Pardo
Thu Nov 20 16:47:01 CET 1997