Está en la página 1de 21

Clase 17: Autómatas de pila

Solicitado: Ejercicios 14: Autómatas de pila de GLC

M. en C. Edgardo Adrián Franco Martínez 1


http://computacion.cs.cinvestav.mx/~efranco
@efranco_escom
edfrancom@ipn.mx
Contenido

Prof. Edgardo Adrián Franco Martínez


Teoría computacional
Clase 17: Autómatas de pila
• Autómata de pila
• Definición formal de autómata de pila
• Configuración de un autómata de pila
• Movimiento de un autómata de pila
• Restricciones de un autómata de pila
• Operaciones elementales de un autómata de pila
• Ejemplo 01
• Lenguaje reconocido por un autómata de pila
• Teorema 1
• Teorema 2
• Conversión de GLC a AP
2
• Ejercicios 14: Autómatas de pila de GLC
Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)
• Un autómata de pila es un modelo matemático de

Prof. Edgardo Adrián Franco Martínez


Teoría computacional
Clase 17: Autómatas de pila
un sistema que recibe una cadena constituida por
símbolos de un alfabeto y determina si esa cadena
pertenece al lenguaje que el autómata reconoce.

• El lenguaje que reconoce un autómata de pila


pertenece al grupo de los lenguajes libres de
contexto en la clasificación de la Jerarquía de
Chomsky.

• Un autómata de pila es esencialmente un autómata


3
finito que posee control sobre un cinta y una pila
del tipo LIFO.
Prof. Edgardo Adrián Franco Martínez
Teoría computacional
Clase 17: Autómatas de pila
• Un autómata de pila se puede definir formalmente
como una séxtupla:
R=(Q, Σ, Γ, δ, q0, F)

• Q: Es el conjunto finito de estados.


• Σ: Es el alfabeto de entrada, es finito.
• Γ: Es el alfabeto de pila.
• δ: Es la función de transición, y es una aplicación de la
forma : δ : Q × {Σ ∪{λ}} × Γ → Q × Γ*
• q0: Es el estado inicial, y cumple q0 ∈ Q.
• F: Es el conjunto de estados finales, F ∈ Q. 4
Prof. Edgardo Adrián Franco Martínez
Teoría computacional
Clase 17: Autómatas de pila
• Los autómatas de pila, en forma similar a como se
usan los autómatas finitos, también se pueden
utilizar para aceptar cadenas de un lenguaje definido
sobre un alfabeto.

• Los autómatas de pila pueden aceptar lenguajes que


no pueden aceptar los autómatas finitos.

• Un autómata de pila cuenta con una cinta de entrada


y un mecanismo de control que puede encontrarse
en uno de entre un número finito de estados. 5
• Uno de estos estados se designa como estado inicial,
y algunos estados como finales.

Prof. Edgardo Adrián Franco Martínez


Teoría computacional
Clase 17: Autómatas de pila
• A diferencia de los autómatas finitos, los autómatas
de pila cuentan con una memoria auxiliar llamada
pila. Los símbolos (llamados símbolos de pila)
pueden ser insertados o extraídos de la pila, de
acuerdo con el manejo last-in-first-out (LIFO).

• Las transiciones entre los estados que ejecutan los


autómatas de pila dependen de los símbolos de
entrada y de los símbolos de la pila.
6
• El autómata acepta una cadena x si la secuencia de
transiciones, comenzando en estado inicial y con pila

Prof. Edgardo Adrián Franco Martínez


Teoría computacional
Clase 17: Autómatas de pila
vacía, conduce a un estado final, después de leer
toda la cadena x

7
Prof. Edgardo Adrián Franco Martínez
Teoría computacional
Clase 17: Autómatas de pila
• Se define configuración de un autómata de pila a
su situación en un instante, que se puede expresar
formalmente de la siguiente manera:

(p, u, β)

• p: Representa el estado actual del autómata.


• u: Es la cadena de entrada que resta por analizar.
• β: Es el contenido de la pila, en el instante considerado

8
Prof. Edgardo Adrián Franco Martínez
Teoría computacional
Clase 17: Autómatas de pila
• Se entiende por movimiento de un autómata a una
transición entre configuraciones, y se representa
por el operador binario →.

δ(p, u, β) → (q, γ)

9
Prof. Edgardo Adrián Franco Martínez
Teoría computacional
Clase 17: Autómatas de pila
• Un autómata de pila tiene las siguientes
restricciones:

• La cinta se desplaza en un sólo sentido, y su cabeza


sólo puede leer.

• La pila, está limitada en un extremo por definición,


cuando se lee un elemento de la pila, este desaparece
o se saca, y cuando se escribe en la pila, se introduce
un elemento.
10
Prof. Edgardo Adrián Franco Martínez
Teoría computacional
Clase 17: Autómatas de pila
• Las operaciones elementales, que se pueden
realizar en una autómata de pila son:
• Dependientes de la entrada: se lee ei, y se desplaza la
cinta, y en función de ei, qj (el estado en que se
encuentra la cinta), y Z (el valor de la pila), el control
pasa a otro estado ql, y en la pila se introduce Z’, o se
extrae Z, o no se hace nada.

• Independientes de la entrada: puede ocurrir lo


mismo que en el caso anterior, sólo que ei no
interviene, la cinta no se mueve, lo que permite
manejar la pila sin las informaciones de entrada. 11
Prof. Edgardo Adrián Franco Martínez
Teoría computacional
Clase 17: Autómatas de pila
• Autómata de pila que acepte { ai bi : i ≥ 0}
Q = {q0, q1}.
Σ = {a, b}.
Γ = {A}.
q0 = {q0}.
F = {q0, q1}

δ(q0, a, λ) → (q0, A)
δ(q0, b, A) → (q1, λ)
δ(q1, b, A) → (q1, λ) 12
Prof. Edgardo Adrián Franco Martínez
Teoría computacional
Clase 17: Autómatas de pila
• Los lenguajes libres del contexto son aquellos que
pueden ser reconocidos por un autómata de pila
determinístico o no determinístico.

13
Prof. Edgardo Adrián Franco Martínez
Teoría computacional
Clase 17: Autómatas de pila
• Para toda gramática libre de contexto G, existe un
autómata de pila R, tal que el lenguaje generado
por la gramática L(G) es reconocido por el
autómata de pila R.
L( G ) = L( R )

• Así como las gramáticas regulares tienen un


autómata equivalente (autómata finito), las
gramáticas libres de contexto tienen su contraparte
en forma de maquina, es decir, un autómata de pila
(AP). 14
Prof. Edgardo Adrián Franco Martínez
Teoría computacional
Clase 17: Autómatas de pila
• Para todo reconocedor constituido por un
autómata de pila R, existe una gramática libre de
contexto G, tal que el lenguaje reconocido por el
autómata es igual al generado por la gramática
L(R)=L(G)

• De los dos teoremas anteriores se deduce que el


conjunto de lenguajes reconocidos por los
autómatas de pila, son los lenguajes de tipo 2 y que
todo lenguaje de tipo 2 se puede reconocer por un
autómata de pila. 15
Prof. Edgardo Adrián Franco Martínez
Teoría computacional
Clase 17: Autómatas de pila
• Sea G=(VT, VN, S, P) una gramática libre de contexto,
su autómata de pila R seria:

R=({p, q}, VT, {VT U VN}, δ, p, {q})

• La función de transición δ se define de la siguiente


manera:

1. δ(p, λ, λ) → (q, S)
• Esta regla solo se usa en la primera transición.
16
2. δ(q, x, x) → (q, λ)
• Esta regla es para todo símbolo terminal x ∈ VT.

Prof. Edgardo Adrián Franco Martínez


Teoría computacional
Clase 17: Autómatas de pila
• Saca x de la pila
• Avanza el símbolo x de la cinta
• No escribe nada en la pila
• No cambia de estado

3. δ(q, λ, A) → (q, α)
• Esta regla es para toda regla de producción A → α ∈ P.
• No avanza la cinta
• Saca A de la pila
• Mete α en la pila
• No cambia de estado 17
Prof. Edgardo Adrián Franco Martínez
Teoría computacional
Clase 17: Autómatas de pila
• Obtener un autómata de pila que acepte el
lenguaje generado por la gramática libre de
contexto cuyas reglas son:

• S → aSa
• S → bSb
• S→c

18
• La función de transición δ:
1. δ(p, λ, λ) → (q, S)

Prof. Edgardo Adrián Franco Martínez


Teoría computacional
Clase 17: Autómatas de pila
2. δ(q, a, a) → (q, λ)
• δ(q, b, b) → (q, λ)
• δ(q, c, c) → (q, λ)

3. δ(q, λ, S) → (q, aSa)


• δ(q, λ, S) → (q, bSb)
• δ(q, λ, S) → (q, c)

19
• Si se realiza la verificación de su funcionamiento
con la cadena abcba se tiene:

Prof. Edgardo Adrián Franco Martínez


Teoría computacional
Clase 17: Autómatas de pila
Estado Falta por leer Pila Transición
p abcba λ δ(p, λ, λ) → (q, S)
q abcba S δ(q, λ, S) → (q, aSa)
q abcba aSa δ(q, a, a) → (q, λ)
q bcba Sa δ(q, λ, S) → (q, bSb)
q bcba bSba δ(q, b, b) → (q, λ)
q cba Sba δ(q, λ, S) → (q, c)
q cba cba δ(q, c, c) → (q, λ)
q ba ba δ(q, b, b) → (q, λ)
q a a δ(q, a, a) → (q, λ)
q λ λ
20
Ejercicios 14: “Autómatas de pila de GLC”

Prof. Edgardo Adrián Franco Martínez


Teoría computacional
Clase 17: Autómatas de pila
• Encuentre un autómata de pila para las siguientes GLC y verifique
con al menos dos cadenas de entrada:
1.- 2.-
E → TE’ P→ iEtPabe| iEtPeP|a|Eab
E’ → +TE’ E→ b
E→ (E)
E→ id 3.-
E’→ +T P→ iEtPP’| a|Eab
T→ FT’ P’→ abe|eP
T→ (E) E→ b
T→ id
T’→ *FT’ 4.-
T’→ *F S → AB
F→ (T) A → aA | a
F→ id B → bB | b
*Se entregarán antes del día Domingo 03 de Noviembre de 2013
(23:59:59 hora limite). 21
*Incluir la redacción de cada ejercicio
*Portada y encabezados de pagina

También podría gustarte