Clase 17: Autómatas de pila - Edgardo A. Franco€¦ · • Para todoautómata de pila R, existe...

21
Clase 17: Autómatas de pila Solicitado: Ejercicios 14: Autómatas de pila de GLC 1 M. en C. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco @efranco_escom [email protected]

Transcript of Clase 17: Autómatas de pila - Edgardo A. Franco€¦ · • Para todoautómata de pila R, existe...

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

[email protected]

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