Page 86 - LENGUAJES FORMALES AUTOMATAS Y COMPILADOS
P. 86
86
Para este mismo segmento, resolviendo el no determinismo, esta rutina bien puede ser:
Estado = Q0
Insertar (#)
Estado = P
Insertar (S)
Estado = Q
Leer símbolo entrada
Mientras cima != #
repita
según-caso (símbolo en la cima)
S: si símbolo != X
entonces
extraer (S)
sino
extraer (S), insertar (XSY)
fin-si
X: si símbolo no es X
entonces
rutina-error
sino
extraer (X), leer (símbolo)
fin-si
Y: si símbolo no es Y
entonces
rutina-error
sino
extraer (Y), leer (símbolo)
fin-si
fin-caso
Fin-mientras
Extraer (#)
Si el símbolo no es la marca de cadena vacía (λ)
Entonces
rutina-error
Sino
estado=F
Acá símbolo, es nuestra memoria temporal para el siguiente símbolo de la entrada, para hacer
efectivo el LL(K), donde K=1
El no determinismo se resuelva con un LL(1), o sea hará un pre análisis leyendo un carácter, para
poder discernir sobre lo que debe hacerse.
Si hay una X al observar el siguiente símbolo de entrada, entonces debe reemplazarse por la S por
la cadena XSY; de lo contrario se debe sustituir por la cadena vacía. Porque si insertamos XSY
en la pila sabiendo que el siguiente símbolo a leer no es una X , esto no funcionará. Una vez que
se inserta un símbolo terminal en la pila, para poder extraerlo debe ser igual al de la entrada. Si
se coloca XSY en la pila cuando observamos en la entrada un símbolo distinto de X, el símbolo