Sie sind auf Seite 1von 3

En este video, vamos a trabajar unos ejemplos de analisis sintctico de SLR.

Relizaremos un ejemplo simple. Vamos a considerar la gramtica. S va a SA, o S va


a B. Y qu significa esta gramtica? Esto crea una cadena A seguida de B. Asi que
una serie de As seguido de una sola B.
Nota que la gramatica es recursivo a la izquierda y recordemos que eso no es un
problema para el anlisis sintctico descendiente.
El anlisis sintctico SLR, LR estn perfectamente bien con la gramatica recursivo a
la izquierda.
Comenzemos a trabajar con el autmata que debe ser para esta gramatica y que
anlisis sintctico debera ser

Retomemos que el primer paso es agregar una nueva produccin a la


gramtica.
o Agregamos un nuevo smbolo de inicio.
o Y lo nico que realiza es, ir al smbolo de inicio anterior.
o Y eso es por razones tcnicas.
Ahora el smbolo de inicio o estado de inicio de la NFA del autmata de
anlisis sintctico es este articulo.
S prima, nuestro nuevo smbolo de inicio, que va a S.(S punto) el smbolo
de inicio anterior.
Y en lugar de construir el NFA, se construye un subjuego de estados.
Vamos a trabajar con los artculos que deberan ir en el primer estado del
DFA.
Recuerda que todos los movimientos en el DF, NFA son movimeintos que se
deben a un no terminal en la pila.
Mejor se puede ver un derivado de un no terminal.
Eso quiere decir que hay un movimiento en el NFA a todos los artculos que
hay, todos los de produccin,todos los primeros artculos para la produccin
de los no terminales.
Qu quiero decir?
o Quiero decir que este estado, que la regla de produccin para S va
a .SA.
o Este es el primer articulo en reconocer esta regla de produccin.
o El punto en la izquierda, habr otro articul para otra regla de
produccin para S, S va a .B
o Y ah se cierra NFA en el inicio de este articulo.
o Asi que esto ser el primer estado.
o Estas tres cosas o artculos es el primer estado del DFA.
Ahora debemos considerar que pasara en cada una de las posibles
transacciones para cada smbolo que haiga en la pila.
Veamos que pasara si encontramos a B.
Si encontramos una B en la pila, entonces el nico artculo que va a ese
estado es S va a B.?
o Estaria bien si se encuentra una B y esto sera el nico articulo valido
en el contenido de la pila.

Otra opcin es que veamos una S.


o Si vemos una S en la pila. Que pasara?
o Vamos al estado que contenga dos artculos.
o S va S. (S prima va a S punto)
o Ahora podemos reducir por esta regla de produccin posiblemente.
o y tambin S va a S.A.
o Ahora en este estado ya no hay ms posibles transacciones.
Y solo hay un solo articulo en el estado de punto(.) en la mano derecha, asi
que ese estado esta terminado completamente.
Pero queda la A asi que aun puede haber una transaccin mas fuera de este
estado.
Para el articulo S va a SA??
o Podemos ver que estos estados estn en muy buen estado.
o Asi que no hay necesidad de un conflicto de cambio reducido en este
estado.
Hay un solo articulo, una sola cosa por hacer.
La nica posibilidad en estos dos casos es reducir.
Este estadom, el estado ininicial, no tiene movimiento de reduccin.
Solo hay movimientos de reduccin y no de conflicto de cambio reduccin
porque no hay artculos de reduccin.
Y no hay reduccin, conflictos de reduccin por la misma razn.
El nico estado de inters es la gramatica de SLR1 en el estado intermedio.
o Aqu podemos reducir por S va a S.(S prima va a S punto) o
podemos hacer un cambio y agregar una A a la pila.
o Y la siguiente pregunta es Qu sigue de S prima?
o Qu puede seguir de S prima en la gramatica?
o Si regresamos a nuestra gramatica, podemos ver que nada sigue a S
prima.
o S prima es el smbolo de incio asi que que lo que sigue es la entrada.
o Asi que eso nos indica que reduciremos por S prima y va a S si
esque no hay entradas.
o En otra cosa, si hay una A en la entrada(input) entonces se cambiara
en la pila.
o Entonces esta gramatica es SLR1.
o No hay cambios reducidos, o reducciones, conflictos reducidos
implicados por este anlisis sintctico de este autmata.
o
Otro ejemplo mas complejo:
Vamos a extender la gramatica anterior.
Tendremos una regla de produccin A.
S va a SAS ?
o Ahora tenmos una no terminal dos ceces con una A intermedia, o S
puede ir a B asi como antes.
o Ahora trabajemos en el analizador sintctico del autmata para esta
gramatica.
o Agregaremos un smbolo de inicio inservible a la gramatica.

o
o
o
o
o
o

o
o
o
o
o

La nica regla de produccin ser generar el smbolo de inicio anterior.


Y asi como antes no nos esforzaremos por construir el NFA.
Esto seria de una manera sistematica.
Una manera es como lo bosquejamos.
Era solo construir primero el NFA, y despus hacer los subconjuntos de
los estados.
Pero esta gramatica es suficientemente pequea y simple para poder
trabajar directamente lo que est en los estados, los artculos dentro
de los estados de la DFA.
ASi como antes porque el puntero esta justo a lado de la S, ahora
sabemos que podemos no consumir cualquier entrada de todas las
transacciones en la interfase de los artculos que incian la regla de
produccin para S.
Tambien estanra en el estado del DFA.
Y eso es todo.
Ya no se pueden agregar otras reglas de produccin aqu.
Asi que S es la nica no terminal.
Y se han agregado todos los primeros artculos que inicalicen los
artculos para S
Y ese es el estado completo.

Das könnte Ihnen auch gefallen