Está en la página 1de 8

Teora de Autmatas I Autmatas de pila y lenguajes independientes del contexto

-1-

AUTMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO


AUTMATAS DE PILA - Son autmatas finitos con una memoria en forma de pila. - Smbolos de pila: Terminales Alfabeto de la pila #: smbolo de fondo de pila (indicador de pila vaca). - Transiciones: (p,x,s;q,y) donde: p,q: estados x: smbolo de entrada (puede ser ) s,y: smbolos de pila (uno de los dos o ambos pueden ser ) - Ejemplo de diagrama de transiciones

- Proceso de reconocimiento de una cadena: Se parte del estado inicial y la pila vaca. Se lee la cadena smbolo a smbolo de izquierda a derecha. Por cada smbolo ledo se produce una transicin desde el estado actual a otro a travs de la flecha cuyo smbolo de entrada coincida con el smbolo ledo, siempre y cuando la cabecera de la pila coincida con el smbolo de pila que figura a la izquierda del punto y coma. La cabecera de la pila es sustituida en cada transicin por el smbolo de pila a la derecha del punto y coma en la etiqueta de la flecha. El autmata puede realizar transiciones entre estados sin consumir smbolos de entrada o smbolos de pila a travs de flechas en las que en el lugar correspondiente de la etiqueta aparezca el smbolo . La cadena es reconocida si es posible que el autmata alcance un estado de aceptacin, estando completamente consumida la cadena de entrada.

Teora de Autmatas I Autmatas de pila y lenguajes independientes del contexto

-2-

- AP: M(S,,,T,i,F) S: conjunto finito de estados. : alfabeto de entrada. : alfabeto de smbolos de pila. T: coleccin finita de transiciones: S x ( ) x () S x (). i: estado inicial. F: conjunto de estados de aceptacin: F S - En general, los autmatas de pila son no deterministas: pueden existir una, varias o ninguna transicin aplicable en un momento dado. Autmatas deterministas: no se encuentran con alternativas. - Se puede admitir que un autmata de pila sea capaz de insertar en la cima de la pila ms de un smbolo en una sola transicin. - Aceptacin de una cadena: el autmata debe alcanzar un estado de aceptacin despus de haber consumido toda la cadena de entrada. Puede exigirse tambin que la pila est vaca al final del proceso de reconocimiento.

Teorema 2.1 Cada autmata de pila que acepta cadenas sin vaciar su pila tiene un autmata equivalente que lo hace vaciando su pila. DEMOSTRACIN: Sea M(S,,,T,i,F) un autmata de pila que acepta cadenas sin vaciar la pila. Se puede modificar M de la forma siguiente: Incluir un nuevo estado inicial i, y una transicin (i,,;i,#). Convertir todos los estados de F en estados de no aceptacin, y aadir un estado nuevo p, y de cada antiguo estado s de F aadir la transicin (s,,;p,). Aadir (p,,x;p,) x. Aadir un nuevo estado de aceptacin q, al que llegar la transicin (p,,#;q,). El nuevo autmata aceptar las mismas cadenas que el original, pero dejando la pila vaca.

Teora de Autmatas I Autmatas de pila y lenguajes independientes del contexto

-3-

GRAMTICAS INDEPENDIENTES DEL CONTEXTO - En sus reglas aparece a la izquierda un nico smbolo no terminal, y a la derecha cualquier combinacin de smbolos terminales y no terminales, o la palabra vaca. - Derivaciones: rboles que se pueden leer de diferentes formas. Derivacin por la derecha: siempre se aplican las reglas de reescritura al smbolo no terminal ms a la derecha de la cadena de derivacin. Derivacin por la izquierda: siempre se aplican las reglas de reescritura al smbolo no terminal ms a la derecha de la cadena de derivacin. Ejemplo: 1. S AB 2. S A 3. A aAa 4. A 5. B Bb 6. B b Derivacin por la izquierda: S AB aAaB aaB aaBb aaBbb aabbb Derivacin por la derecha: S AB ABb ABbb Abbb aAabbb aabbb Teorema 2.2 Para cada gramtica independiente del contexto G(V,,Ax,R) existe un autmata de pila M(S,,,T,i,F) tal que L(G) = L(M). DEMOSTRACIN Dada una gramtica G(V,, Ax,R) independiente del contexto, se crea un autmata de pila M(S,,,T,i,F) de la manera siguiente: El conjunto de smbolos de entrada de M coincide con los smbolos terminales de G, mientras que =V{#} El conjunto de estados de M ser S={i,p,q,f} F={f} Se introduce la transicin (i,,;p,#) Se introduce la transicin (p,,;q,Ax), siendo Ax el axioma de la gramtica. Para cada regla de reescritura Nw de la gramtica se introduce una transicin de la forma (q,,N;q,w). Para cada smbolo terminal de G se introduce una transicin (q,x,x;q,). Introducir la transicin (q,,#;f,). Teorema 2.3 Para cada autmata de pila M(S,,,T,i,F) existe una gramtica independiente del contexto G(V,,Ax,R) tal que L(G) = L(M).

Teora de Autmatas I Autmatas de pila y lenguajes independientes del contexto

-4-

FORMA NORMAL DE CHOMSKY - Una gramtica independiente del contexto se encuentra en forma normal de Chomsky si el lado derecho de cada una de sus reglas est constituido por un nico smbolo terminal o por dos no terminales. Eliminacin de reglas - Encadenamiento de longitud n: secuencia de reglas de la forma Nn Nn-1, Nn-1 Nn-2, ... , N1 N0, N0 . - Clculo de encadenamientos de una gramtica: Se define U0={Ni | Ni R} encadenamiento de longitud 0. Se calcula U1 como U1 = U0 {Ni | Ni Nj R, Nj U0} Se prosigue calculando los encadenamientos de sucesivas longitudes, hasta que Un = Un-1 = U - Para cada gramtica G puede obtenerse otra G que no tiene reglas si se eliminan todas ellas, y para cada regla N w se aade otra regla N w donde w es cualquier cadena no vaca obtenida al eliminar de w una o ms ocurrencias de smbolos no terminales que pertenezcan a U. Teorema 2.4 Si L es un lenguaje independiente del contexto sin la palabra vaca, existe una gramtica en forma normal de Chomsky que genera dicho lenguaje. DEMOSTRACIN Sea la gramtica G(V,,S,R), que no contiene reglas . Se realiza sobre ella el siguiente proceso: 1. Para cada smbolo terminal x se introduce la regla X x, donde X es un smbolo no terminal nuevo que no perteneca a V, y se sustituye x por X en todas las dems reglas de G. 2. Cada regla de la forma N N1 Nn-2 ... Nn, siendo n 2, se sustituye por la secuencia de reglas N N1 R1, R1 N2 R2, ... , Rn-2 Nn-1 Nn, donde los Ri son smbolos no terminales nuevos que no pertenecan a V. Al llegar a este punto, la gramtica contiene slo reglas que en la parte derecha tienen un nico terminal, dos no terminales o un nico no terminal. Estas ltimas reglas se pueden eliminar efectuando el siguiente paso: 3. Para cada secuencia de reglas Nn Nn-1, Nn-1 Nn-2, ... , N2 N1 se aade la regla Nn x si N1 x estaba en G, y Nn AB si N1 AB estaba en G, y se eliminan entonces las reglas que tienen un nico no terminal en su parte derecha. Si el lenguaje contiene la palabra vaca, se aade un nuevo smbolo S, que ser el inicial, con una regla S , y para cada regla S w en G, siendo w un terminal o dos no terminales, se aade la regla S w.

Teora de Autmatas I Autmatas de pila y lenguajes independientes del contexto

-5-

LMITES DE LOS AUTMATAS DE PILA

Lema de bombeo para lenguajes independientes del contexto - Si L es un lenguaje independiente del contexto con un nmero infinito de cadenas, existir en L una cadena con la forma svuwt, siendo v o w no vacas, y tambin existirn en L cadenas de la forma svnuwnt para todo n > 0.

Autmatas de pila deterministas - En cada momento tienen una y slo una opcin posible. Teorema 2.6 Existen lenguajes independientes del contexto que no pueden ser aceptados por ningn autmata de pila determinista. - Lenguajes independientes del contexto deterministas: aceptados por algn autmata de pila determinista. - Existen lenguajes independientes del contexto que no pueden ser aceptados por ningn autmata de pila determinista que vace su pila.

Principio de preanlisis - Tcnica que permite a los autmatas de pila observar uno o varios smbolos ms all de donde se encuentra la cabeza lectora del autmata, pero sin leerlos realmente. - Esta tcnica permite superar el no determinismo de algunos autmatas de pila.

Teora de Autmatas I Autmatas de pila y lenguajes independientes del contexto

-6-

ANALIZADORES SINTCTICOS LL(k)

- Leen la cadena de entrada de izquierda a derecha, y producen una derivacin por la izquierda. - Se basan en el proceso de reconocimiento de los autmatas de pila construidos segn el teorema 2.2 - Se les denomina: Analizadores sintcticos predictivos, pues deben predecir cul es la siguiente regla de reescritura que debe aplicarse en la derivacin. Analizadores sintcticos descendentes, pues insertan en la pila el smbolo inicial de la gramtica y terminan generando en ella una cadena de smbolos equivalente a la cadena de entrada. Para ello emplean una tcnica de preanlisis con k smbolos. - Existen lenguajes independientes del contexto deterministas que no pueden ser reconocidos por analizadores LL(k), cualquiera que sea k.

Proceso de anlisis LL - Previo: marcar el fondo de la pila (#) e insertar el smbolo inicial de la gramtica. - Proceso: repeticin de los siguientes pasos 1. Si en la cima de la pila hay un smbolo no terminal, reemplazarlo de acuerdo con una regla de la gramtica. 2. Si en la cima de la pila hay un smbolo terminal que coincide con el smbolo actual de entrada, sacarlo de la pila y leerlo de la entrada. Si dichos smbolos no coinciden, la cadena es rechazada. 3. Si en la cabecera de la pila aparece #, la cadena es aceptada. - El principio de preanlisis permite elegir entre posibles alternativas en el paso 1.

Tablas de anlisis sintctico LL(k) - Matriz bidimensional cuyos elementos indican la parte derecha de la regla que se debe aplicar en el paso 1 del proceso de anlisis cuando aparece un cierto smbolo no terminal en la cabecera de la pila, dada una cierta combinacin de smbolos de preanlisis. Tantas filas como smbolos no terminales. Tantas columnas como combinaciones posibles de smbolos de preanlisis (incluyendo el fin de cadena). Error: cuando no se puede aplicar ninguna regla.

Teora de Autmatas I Autmatas de pila y lenguajes independientes del contexto

-7-

ANALIZADORES SINTCTICOS LR(k)

- Leen la cadena de entrada de izquierda a derecha, y producen una derivacin por la derecha. - Se les denomina analizadores sintcticos ascendentes, pues el proceso de reconocimiento que emplean conduce a la insercin en la pila del smbolo inicial de la gramtica. Para ello emplean una tcnica de preanlisis con k smbolos. - Los lenguajes aceptados por los analizadores LR(k) son los lenguajes independientes del contexto deterministas. - Se basan en el proceso de reconocimiento de los autmatas de pila construidos segn el siguiente procedimiento: Establecer 4 estados: i (inicial), f (final), p y q. Introducir las transiciones (i,,;p,#) y . (q,,#;f,). Para cada smbolo terminal de la gramtica establecer la transicin (p,x,;p,x) (operacin de desplazamiento). Para cada regla de reescritura N w establecer la transicin (p,,w;p,N) (operacin de reduccin). Introducir la transicin (p,,S;q,).

Proceso de anlisis LR - Previo: marcar el fondo de la pila (#). - Proceso: 1. Ir insertando en la pila los smbolos terminales que aparecen a la entrada (operacin de desplazamiento). 2. Cuando los smbolos en la cabecera de la pila coincidan con la parte derecha de alguna regla, sustituirlos por el no terminal en la izquierda de dicha regla (operacin de reduccin). 3. Al final, en la pila slo quedan el axioma y #. - El principio de preanlisis permite seleccionar entre posibles alternativas a la hora de elegir si se realiza una operacin de desplazamiento o de reduccin, y, en este ltimo caso, tambin sirve para identificar cul de las reglas de la gramtica va a ser reducida. - Las reglas involucradas en las operaciones de reduccin ledas de abajo a arriba dan una derivacin por la derecha.

Teora de Autmatas I Autmatas de pila y lenguajes independientes del contexto

-8-

Tablas de anlisis sintctico LR(k) - Se utilizan para evitar tener que consultar ms de un smbolo de la pila al realizar operaciones de reduccin en el paso 2 del proceso de anlisis LR. - Las tablas de anlisis sintctico LR(k) se basan en la existencia de un autmata finito que es capaz de aceptar las cadenas de smbolos de la gramtica (terminales y no terminales) que conducen a una operacin de reduccin. Estados del autmata finito: smbolos especiales. - Cada vez que se inserta en la pila un smbolo terminal (desplazamiento) o no terminal (reduccin), tambin se inserta un smbolo especial. El smbolo especial insertado es un patrn que representa lo que hay por debajo de l en la pila. - Una tabla de anlisis LR(1) es una matriz bidimensional cuyos elementos indican la accin que debe realizar el analizador en cada momento (desplazar, reducir, aceptar, error) y los smbolos que debe insertar en la pila. Columnas: smbolso terminales, fin de cadena y no terminales. * Columnas con terminales o fin de cadena: operaciones de desplazamiento, reduccin, aceptacin o error. * Columnas con no terminales: indican el smbolo especial insertado en la cima de la pila tras una reduccin que tuviese en la parte izquierda de la regla el no terminal de la columna. Filas: smbolos especiales (estados del autmata finito). - Proceso detallado de anlisis: Previo: se inserta el smbolo especial 1 en la pila. Proceso: acceder a la casilla (X,a), siendo X el smbolo especial en la cabecera de la pila y a el smbolo terminal de preanlisis, y realizar la operacin indicada en dicha casilla: * Desplazar Y: operacin de desplazamiento. Se inserta el smbolo terminal a en la pila, y a continuacin el smbolo especial Y. * N w: operacin de reduccin. Se extraen de la pila 2*|w| smbolos. En la cabecera de la pila quedar un smbolo especial Z, sobre el cual se insertar el no terminal N y encima de l el smbolo especial contenido en la casilla (Z,N). * Aceptar: la cadena es aceptada. * Casilla en blanco: la cadena es rechazada. El proceso termina al alcanzar una casilla de aceptacin o de rechazo.

COMENTARIOS FINALES - La unin de LIC es un LIC. - La interseccin de dos LIC no tiene por qu ser un LIC. - La complementacin de un LIC no tiene por qu ser un LIC.

También podría gustarte