Post on 30-Apr-2020
Clase 17: Autómatas de pila
Solicitado: Ejercicios 14: Autómatas de pila de GLC
1M. en C. Edgardo Adrián Franco Martínez
http://computacion.cs.cinvestav.mx/~efranco
@efranco_escom
edfrancom@ipn.mx
Contenido• 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
• Ejercicios 14: Autómatas de pila de GLC
Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)
2
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
3
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z• Un autómata de pila es un modelo matemático de
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
finito que posee control sobre un cinta y una pila
del tipo LIFO.
4
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• 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.
5
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• 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.
6
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• Uno de estos estados se designa como estado inicial,
y algunos estados como finales.
• 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.
7
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• El autómata acepta una cadena x si la secuencia de
transiciones, comenzando en estado inicial y con pila
vacía, conduce a un estado final, después de leer
toda la cadena x
8
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• 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
9
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• Se entiende por movimiento de un autómata a una
transición entre configuraciones, y se representa
por el operador binario →.
δ(p, u, β) → (q, γ)
10
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• 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.
11
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• 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.
12
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• 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, λ)
• Los lenguajes libres del contexto son aquellos que
pueden ser reconocidos por un autómata de pila
determinístico o no determinístico.
13
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
14
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• 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).
15
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• 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.
16
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• 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.
17
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
2. δ(q, x, x) → (q, λ)
• Esta regla es para todo símbolo terminal x ∈ VT.
• 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
18
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• 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
19
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• La función de transición δ:
1. δ(p, λ, λ) → (q, S)
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)
20
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
• Si se realiza la verificación de su funcionamiento
con la cadena abcba se tiene:
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 λ λ
• Encuentre un autómata de pila para las siguientes GLC y verifiquecon al menos dos cadenas de entrada:
*Se entregarán antes del día Domingo 03 de Noviembre de 2013(23:59:59 hora limite).
*Incluir la redacción de cada ejercicio
*Portada y encabezados de pagina
21
Ejercicios 14: “Autómatas de pila de GLC”
1.-
E → TE’
E’ → +TE’
E→ (E)
E→ id
E’→ +T
T→ FT’
T→ (E)
T→ id
T’→ *FT’
T’→ *F
F→ (T)
F→ id
2.-
P→ iEtPabe| iEtPeP|a|Eab
E→ b
Teo
ría
co
mp
uta
cio
na
l
Cla
se 1
7:
Au
tóm
ata
s d
e p
ila
Pro
f. E
dga
rdo
Ad
riá
n F
ran
co M
art
íne
z
3.-
P→ iEtPP’| a|Eab
P’→ abe|eP
E→ b
4.-S → ABA → aA | aB → bB | b