Está en la página 1de 2

Analizador Sintctico LL

Analizador sintctico LL. Es un analizador sintctico descendente, por un conjunto de gramtica


libre de contexto. En ste analizador las entradas son de izquierda a derecha, y construcciones de
derivaciones por la izquierda de una sentencia o enunciado. La clase de gramtica que es
analizable por ste mtodo es conocido como gramtica LL.
Un analizador LL es llamado un analizador LL (k) si usa k tokens cuando el analizador ve hacia
delante de la sentencia. Si existe tal analizador para cierta gramtica y puede analizar sentencias
de sta gramtica sin marcha atrs, entonces es llamada una gramtica LL (k). De sta
gramticas, la gramtica LL, aunque es bastante restrictiva, stas son muy populares porque los
analizadores LL correspondientes slo necesitan ver el siguiente token para hacer el anlisis de
sus decisiones. Lenguajes mal diseados usualmente suelen tener gramticas con un alto nivel de
k, y requieren un esfuerzo considerable a analizar.
Existe controversia entre la escuela europea del diseo del lenguaje, quien prefiere gramtica
basada en LL, y los otros pases prefieren predominantemente gramtica basada en LR. Esto se
debe en gran parte a la influencia de Niklaus Wirth en la ETH Zrich en Suiza, cuya investigacin
ha descrito una serie de maneras de optimizar lenguajes y compiladores LL
Lo siguiente describe un derivaciones por la izquierda por un analizador basado en una tabla
descendente (analiza de arriba hacia abajo).
El trabajo del analizador sobre una cadena de gramtica particular.
El anlisis consiste de:

Una bfer de entrada, una cadena de gramtica


Una pila sobre la cual se almacenan los smbolos terminales y no-terminales de la
gramtica an sin analizar
Una tabla de anlisis

Una tcnica para traducir gramticas independientes del contexto a autmatas de pila es seguir el
proceso de construccin que produce un autmata de pila que analiza su cadena de entrada
marcando antes el fondo de la pila e insertando en la pila el smbolo inicial de la gramtica. Luego
se aplica:
1. Si la cima de la pila contiene un no terminal de la gramtica se reemplaza de acuerdo con
una de las reglas de reescritura de la gramtica.
2. Si la cima de la pila contiene un terminal, se elimina de la pila si es el que se lee en la
entrada. Si no se declara cadena ilegal.
3. Si aparece la marca de fondo de pila, se elimina y se acepta la porcin de la cadena de
entrada procesada hasta el momento.

Este proceso analiza la sintaxis de la cadena de entrada produciendo una derivacin por la
izquierda, conforma lee de izquierda a derecha. Por lo que acta como un programa obtenido de la
traduccin directa del autmata. Los analizadores sintcticos desarrollados de esta manera se
conocen como analizadores sintcticos LL.

Analizador Sintctico LR
Analizador sintcticos LR. Tambin conocidos como parser LR, son un tipo de analizadores para
algunas gramticas libres de contexto. Pertenece a la familia de los analizadores ascendentes, ya
que construyen el rbol sintctico de las hojas hacia la raz. Utilizan la tcnica de anlisis por
desplazamiento reduccin. Existen tres tipos de parsers LR: SLR (K), LALR (K) y LR (K) cannico.
En trminos generales un analizador sintctico LR transfiere smbolos de su entrada a la pila hasta
que los smbolos superiores de la pila sean iguales al lado derecho de alguna regla de reescritura
de la gramtica en que se basa el analizador. Al llegar a este punto el analizador sintctico puede
reemplazar estos smbolos con el no terminal que se encuentra en el lado izquierdo de la regla de
reescritura
antes
de
transferir
otros
smbolos
de
la
entrada
a
la
pila.
De esta manera, la pila acumula cadenas de terminales y no terminales, que a su vez son
reemplazados por no terminales ms altos de la gramtica. Por ltimo, todo el contenido de la pila
se reduce al smbolo inicial de la gramtica, indicando que los smbolos ledos hasta ese punto
forman una cadena que puede derivarse con la gramtica.
Un analizador LR consta de:
1. Un programa conductor
2. Una entrada
3. Una salida
4. Una tabla de anlisis sintctico, compuesta de 2 partes (ACCIN Y GOTO)

Proceso de anlisis LR
Con base a este esquema general los analizadores sintcticos LR(k) se clasifican como analizador
sintctico ascendente, ya que sus actividades corresponden a la construccin de ocurrencias de no
terminales a partir de sus componentes, hasta generar el smbolo inicial de la gramtica.
Los analizadores sintcticos LL(k) se conocen como analizadores sintcticos descendentes ya que
comienzan con el smbolo inicial de la pila y dividen los no terminales de la pila hasta generar una
cadena similar a la entrada.

También podría gustarte