automa pilha slides

52
u 7.1. Autómatos de pilha não-determinísticos (NPDA) 7.2. Autómatos de pilha e linguagens livres de contexto 7.3. Autómatos de pilha determinísticos e linguagens livres de contexto determinísticas. © ADC/TC/Cap.7/2009-10 /LEI/DEIFCTUC 301

Upload: mateus-cordeiro

Post on 09-Jan-2016

67 views

Category:

Documents


0 download

DESCRIPTION

Automatos de Pilha

TRANSCRIPT

Page 1: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 1/52

u

7.1. Autómatos de pilha não-determinísticos (NPDA)

7.2. Autómatos de pilha e linguagens livres de contexto

7.3. Autómatos de pilha determinísticos e linguagenslivres de contexto determinísticas.

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC301

Page 2: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 2/52

 

q0 Paa

q1

CONTROLO lb

c

b

c

a0101

# # 

estado seguinte

movida

car cter e entra a

estado actual

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 302

 s m o o no opo a p a

Page 3: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 3/52

7.1. Autómatos de pilha não-determinísticos

Definição 7.1. NPDA

 

(NPDA- Nondeterministic PushDown Accepter )

 M = (Q ,  ,  ,   , q0 , z 0 , F )

: conjunto finito de estados internos da unidade de controlo : o alfabeto de entrada

   : Q ( { }) subconjuntos finitos de Qx * é a

 função de transição,q0  Q : estado inicial da unidade de controlo

 z 0    : símbolo de inicialização da pilha

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 303

     : conjunto de estados finais (aceitadores).

Page 4: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 4/52

 Notas

uma transição pode ter como carácter de entrada  , sendoneste caso uma transi ão- 

a definição de transição exige um símbolo no topo da pilha;se a pilha estiver vazia, as movidas serão inibidas

 suas movidas, elas devem ter um número finito de

ossibilidades.

 a de uma movida resulta a escrita de uma cadeia b

 c

no topo da pilha: abc é escrita

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 304

Page 5: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 5/52

“ ”

 

“ pop” - apagar um carácter

substituição de um carácter por outro

inicialização com qualquer símbolo de   ;normalmente com o carácter especial #

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 305

Page 6: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 6/52

transição

símbolo de entrada novo estadoestado actual

  (q0 , a , 0) = { (q1 , 10) }

símbolo actual no to o “ ”da pilha  pilha

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 306

Page 7: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 7/52

Transições Operações sobre a a pilha Significado

1.  (q0 , a, #  ) = { (q1 , 0#  ) }  push acrescenta 0 à

 pilha com #. q0, , = q1,  pop apaga

3. (q1, b, 0) = { (q1, 1) } substituição substitui 0 por 1

4. (q0, b, 1) = { (q1, 1) } nenhuma não altera

5. (q1, , 0) = { (q2, ) }  pop apaga 0sem consumir entrada

6. (q1, , 0) = { (q2, 10) }  push acrescenta 1sem consumir entrada

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 307

Page 8: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 8/52

 

 (q1 , a, b) = {(q2 , cd ), (q3 ,  )}

uando o autómato está no estado se a arecer um a na cadeiade entrada, então acontecerá uma de duas coisas :

- a unidade de controlo passa ao estado q2- substitui b pela cadeia cd no topo da pilha (fica com mais

 ou

- a unidade de controlo assa ao estado- na pilha substitui b  por   , isto é, apaga b do topo da pilha

(que fica assim com menos um carácter).

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 308

Page 9: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 9/52

Exemplo 2  NPDA

 = =

 = {a, b}  , , , , ,

 (q0 ,   , # ) = {(q3 ,)}= , ,

 z 0= # 

 (q1 , a , 1 ) = {(q1 , 11)}

   b 1 =  

 F= {q3}

 

 (q2 , b , 1 ) = {(q2 ,  )}

(q2 , , # ) = {(q3 , )}

não é uma função total.Se o autómato cair num estado para o qual    não está definido, nunca mais

de lá sai, estando por isso morto.

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 309

Page 10: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 10/52

 

 ª =  1 , , 1 ,

 por cada a que aparece acrescenta um 1 à pilha.

2ª :  (q2 , b, 1 ) = {(q2 ,  )}

 por cada b que aparece nestas circunstâncias, apaga um 1a p a, a que que apenas o s m o o n c a .

  1   2  aparece o primeiro b.

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 310

Page 11: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 11/52

 

uan o at nge q3

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 311

Page 12: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 12/52

O estado q3 é alcançado quando o NPDA lê uma cadeia de

 L = {an bn : n  0} {a}.

o e-se a rmar, por ana og a com o que acon ece nos ,que o NPDA aceita esta linguagem.

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 312

Page 13: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 13/52

Descrição instantânea de um NPDA

Completamente definida pelo tripleto

 , w, u

q : estado actual do autómato. w : parte ainda não lida da cadeia de entrada.

  ,esquerda (convenção).

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 313

Page 14: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 14/52

Uma movida |   de uma descrição de base para outra

 

só é possível se existir a transição

   a b  =

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 314

Page 15: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 15/52

 mov as com um n mero ar r r o e passos

indica que a movida se refere ao autómato M .

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 315

Page 16: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 16/52

Linguagem aceite por um NPDA , L ( M )

Definição 7.2. Aceitação por um estado final

 M = (Q ,   ,    ,   , q0 , z 0 , F )

 L ( M ) = { w  * : (q0 , w , z 0)  M  ( p ,  , u), p F, u    * } 

É o conjunto de todas as cadeias capazes de colocarem oautómato num estado final (aceitador) no fim da leitura dacadeia. O conteúdo da pilha, u, é irrelevante para esta definição.

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 316

Page 17: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 17/52

e n ç o . . ce aç o por p a vaz a

 =         z F

 L ( M ) = { w  * : (q0 , w , z 0)  M  ( q ,  , ), para algum q Q}

 

 o conjunto de todas as cadeias capazes de colocarem oautómato com a pilha vazia (depois de lidas completamente) e

.

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 317

Page 18: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 18/52

s uas e n ções são equ va entes:

Se existe um NPDA ue aceita uma lin ua em L por um estado final, então existe um NPDA

.

... e vice-versa

Ver Hopcroft e Coll. (p. 230-236)

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 318

Page 19: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 19/52

Exemplo 3

Qual o NPDA que aceita

= w   a, b * : na(w) = nb(w)

É necessário contar o número de a’ s e b’s, usando a pilha. A ordem dos a e b

não interessa neste caso.

 algoritmo:

define-se um símbolo ara contar o número de a’s or exem lo o 0  sempre que aparece um a acrescenta-se um 0 à pilha (push),

sempre que aparece um b, apaga-se um zero da pilha (pop),quan o n o ouver ma s zeros, res an o apenas o s m o o e n c a zaç oda pilha, e aparecer um b, acrescenta-se um 1 à pilha (push),

uando o to o da ilha for um 1 e a arecer um a, a a a-se esse 1 o .

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 319

Page 20: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 20/52

Teremos assim as seguintes transições:

 (q0,   , # ) = {(q f  , # )}

 (q0, a, # ) = {(q0 , 0# )}

   b #   = 1# 

 (q0, a, 0) = {(q0 , 00)}

 (q0, b, 0) = {(q0 ,

 )}

 (q0, a, 1) = {(q0 ,  )}

 (q0, b, 1) = {(q0 , 11)}

 M = ({q0 , q }, {a,b}, {#, 0, 1},   , q0 , #, {q })

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 320

Page 21: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 21/52

O não-determinismo no autómato

A transição com  na entrada introduz não-determinismo:

 (q0,   , # ) = {(q f  , # )}

q0, a, = q0 ,

,

duas coisas:

o au ma o rans a para o es a o q f sem consum ro a da entrada (transição -  )

o autómato consome o carácter de entrada,escreve 0 na pilha e mantém-se em q0.

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 321

Page 22: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 22/52

Grafo do PDA

A etiqueta de cada aresta é da forma (notação de Linz edo JFLAP):

a 1 01Pilha

 q0 q1

0

1

Estando o autómato no estado q0, se lê a e se a pilha estivercom 1 no to o o autómato

 passa ao estado q1,

faz o “pop” da pilha (apaga 1)

e depois o “push” e 01 ( esceve o 1 seguido do zero,

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 322

topo à esquerda, 0)

Page 23: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 23/52

Grafo do PDA

A etiqueta de cada aresta é da forma (notação de Taylore do Deus Ex Máquina):

a 1 01 Pilha q0 q1

1

Estando o autómato no estado q0, se lê a e se a pilha estiver,

 passa ao estado q1,

faz o “pop” da pilha (apaga 1)

e de ois o “ ush” de 0 e 1 escreve 0 se uido de 1

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 323

 

topo à direita, 1)

Page 24: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 24/52

 a # # 0  a, # ; 0#Grafo do PDA

 b, # ; # 12

3

 b, # ; 1# ( a verde notação JFLAP)

q0

q f 

  , # ; #

 a, 0 ; 0 0

 b, 0 ; b, 1 ; 1 15

6

7

(Taylor, p.538)

 a, 1 ;( a azul notação DEM)

1.  (q0,   , # ) = {(q f  , # )}

2.    a #   = 0# 

5.  (q0, b, 0) = {(q0 ,  )}

3.  (q0, b, # ) = {(q0 , 1# )}

=

. 0,  , 0 ,

7.  (q0, b, 1) = {(q0 , 11)}

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 324

. 0,  , 0 ,

Page 25: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 25/52

aabbabba

 produz as seguintes movidas:

(q0 , aabbabba, #) |  (q0, abbabba, 0#) |  (q0, bbabba, 00#)

0,  , 0,  , 0,  ,

|  (q0, ba, #) |  (q0, a, 1#) |  (q0,   , #) |  (q f , #)

e portanto é aceite.

Este exemplo vem implementado no Deus Ex Máquina , directoria de exemplos de PDA,

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 325

. . . , .

Page 26: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 26/52

 

Desenhar o grafo do NPDA da linguagem (Taylor, 541).

 L = a n b m : 0 n < m , m   2

a 0 0 0 b 0    b # # 

b, # ; # 

q1 q f 

 ,a, ;q0 b, 0 ;  

Este problema está implementado no Deus Ex Máquina – “ ”

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 326

   . . .

Page 27: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 27/52

. . ut matos e p a e nguagenslivres de contexto

Para toda a linguagem livre de contexto existe um NPDA que aaceita. É mais fácil de demonstrar para gramáticas na forma

normalizada da Greibach , em que todas as produções são daforma , , .

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 327

Page 28: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 28/52

7.2.1. NPDA’s para gramáticas livres de contexto

o NPDA implementa a derivação pela extrema-esquerda de

qualquer cadeia.

as variáveis da parte direita da forma sentencial colocam-se na

pilha.

a parte esquerda da forma sentencial, composta pelos símbolos

terminais é idêntica à entrada lida.

começa-se colocando o símbolo inicial na pilha.

para simular A a x (forma normal de Greibach)

- coloca-se A no topo da pilha

- -

- a variável na pilha é removida e substituída por x

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 328

Page 29: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 29/52

a a

 x

 

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 329

Page 30: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 30/52

xemp oPro ectar um NPDA ue aceite a lin ua em erada ela ramática

S  aSbb | a

transformar a ramática na forma de Greibach

S  aSA | a

  bB

 B  b

O autómato correspondente terá 3 estados {q0 , q1 , q2} sendo q2=q .

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 330

Page 31: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 31/52

1º colocar o símbolo inicial S na pilha:

 (q0 ,   , # ) = { (q1 , S# )}.

2º simular a produção S aSA, # 

 

simular a produção S a, a

su s u n o na p a por

 (q1, a, S ) = { (q1 , SA), (q1 ,  )} A

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 331

Page 32: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 32/52

3º simular a produção  A bB b b

 (q1, b, A) = { (q1 , B)}

4º simular a produção  B  b

 A

 B

 (q1, b, B) = { (q1 ,  )}# 

5º completar a derivação quando aparece # no topo da pilha

 (q1,   , # ) = { (q f  , # )}.

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 332

Page 33: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 33/52

S  aSA | a

S  aSbb | a  A  bB, b.

a, S ; SAa, S ;  

q1 q  , # ; # 

q0

  , # ; S#

b, A ; Bb, B ;  (Notação JFLAP)

-

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 333

 

Page 34: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 34/52

 

Seja a CFG em forma normal de Greibach

S  aA | aB 1.1-1.2.

 A  aAB | aBB 2.1.-2.2

 B  b 3.1

= n n 

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 334

Page 35: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 35/52

er vaç o pe a extrema esquer a e aaaa

S aA de 1.1 aaAB (de 2.1) aaaABB (de 2.1) aaaaBBBB (de 2.2) aaaabBBB (de 3.1)

  . aaaabbbB (de 3.1)

aaaabbbb (de 3.1)

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 335

Page 36: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 36/52

Produção Movida Grafo

Carregar S  (q0 , , # ) = { (q1 , S# )}

q1q0     , # ; S#   NotaçãoJFAP

S  aA   (q1 , a, S) = { (q1 , A)} q1 a, S ; A

S

 aB

  (q1 , a, S) = { (q1 , B)} a, S ; Bq1

 A

 aAB   (q1 , a, A) = { (q1 , AB)}a, A ; AB

q1  NotaçãoJFLAP

 A  aBB   (q1 , a, A) = { (q1 , BB)} a, A ; BB

q1

 B  b   (q1 , b, B) = { (q1 , )}

 

b, B ;  1

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 336

  1 , ,  f  , q f q1 , ;

Page 37: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 37/52

S  aA | aB

 A  aAB | aBB

a, S ; Ba, S ; A

 

q1 q f 

 , ;

q0

 , ;

a, A ; BBa, B ;  

(Notação JFLAP) 3 estados paraa, A ; AB qualquer gramáticade Greibach

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 337

 L (G) = { a n b n : n  1 }

Page 38: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 38/52

Teorema 7.1

Para ual uer lin ua em L livre de contexto existe um NPDAque a aceita, i.e, existe um M tal que

=

,

normal de Greibach para L.

contrói-se uma NPDA para simular as derivações pelaextrema-esquerda dessa gramática.

A forma de Greibach é apenas para facilitar o desenvolvimento.

O teorema a lica-se a toda a CFG.

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 338

 

Page 39: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 39/52

Qual o número mínimo de estados de um NPDA, para uma

linguagem definida por uma gramática de Greibach ?- no exemplo obtiveram-se três ;

- o estado q0 pode ser eliminado (fica não-determinístico);

- passa a ser ace e

a, S ; Ba S A 

ste resu ta o

geral: paraqualquer CFL

q1q f 

 ,  , # ; S# 

com  ,existe um NPDA com dois

a, A ; BBa, B ;  

, ,três estados.

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC

339

a, ; (Notação JFLAP)

Page 40: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 40/52

Se uisermos evitar a introdu ão do   , ode-se utilizar um

símbolo especial na pilha, $, para inicializar a gramática:   ,  λ , #  =  ,S$

E agora começa-se com a gramática de Greibach.

a, S ; Ba, S ; A

  # 

 

 para qualquer CFLsem λ existe um

q1q f 

   , # ; S$  NPDA com dois

estados,

a, A ; BBa, B ;  

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC

340

 , o aç o

Page 41: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 41/52

’. . .

O inverso do teorema anterior também é verdadeiro: dado um NPDA, existe para ele uma CFG.

  ,que a gramática simule as movidas do NPDA.

Teorema 7.2.

Se uma linguagem L é aceite por algum NPDA  M, então L é

uma lin ua em livre de contexto

Dem: Linz ,189

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 341

Page 42: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 42/52

. . ut matos e p a eterm n st cos elinguagens livres de contexto determinísticas

Um autómato de pilha determinístico – DPDA – 

 Deterministic PushDown Accepter  – nunca tem escolhaossível nas suas movidas. 

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 342

Page 43: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 43/52

Definição 7.4. DPDA

Um PDA  M= (Q,   ,    ,  , q0 , z 0 , F ) diz-se determinístico se for um

 para todo o q Q, a    { }, b   :

1. Dado um símbolo de entrada e um símbolo no topo da pilha, só é possível uma movida, no máximo.

(q, a, b) contém no máximo um elemento (uma só movida possível)

2. uanto é ossível uma transi ão-  ara al uma confi ura ão nãoexiste nenhuma alternativa que consuma caracteres deentrada para essa mesma configuração.

se  (q,   , b) não é vazia, então  (q, c, b) deve ser vazia para todo o c  

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 343

Page 44: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 44/52

 

DFA DPDA

não admite transições -   admite transições - 

  é uma função total     não é necessariamenteuma função total

há equivalência entre osdeterminísticos e os não

não há equivalência entreos determinísticos e os não

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 344

Page 45: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 45/52

 a

 a

 b

 b

1q f q0

 a b

q1q

 a, # ; # 

 a, ;

q0

 b, # ; # 

 b ,# ;# 

 a, # ; # 

 b, #;# DPDA

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 345

(a p a não é usa a)

Page 46: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 46/52

De n ção 7.5. L nguagem FL determ n st ca

- (DCFL) se e só se existir um autómato de pilha

determinístico DPDA  M que a aceite ,

=

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 346

Page 47: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 47/52

Exemplo = a : n:

= 0 , 1 , 2 ,  , , , ,  , 0 , ,  f 

 (q0

 , a, # ) = {(q1

 , 1# )}, (inicia a contagem dos a’s) (q1 , a, 1 ) = {(q1 , 11)}, (conta os a’s )

q1 , , = q2 , , e ec a o pr me ro (q2 , b, 1 ) = {(q2 ,  )}, (conta os b’s)

= º ’  = º ’ 

aceita L. Lo o L é CFL determinística.

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 347

Page 48: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 48/52

 = a n b n : n 1

b ,1 ; a, 1 ; 11

b, 1 ;  a, # ; 1#      , # ;  q1 q2

(notação JFLAP)

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 348

Page 49: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 49/52

 = a n b n : n 0

b ,1 ; a, 1 ; 11

b, 1 ;  a, # ; 1#     , # ;  q1 q2

(notaçãoJFLAP

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 349

Page 50: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 50/52

 = an n

: n 0

b ,1 ; a, 1 ; 11

q1q f 

 , ;a, # ; 1#q2

  , # ;  

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 350

Page 51: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 51/52

7.4. Gramáticas para linguagens livres decontexto determinísticas

 pode-se fazer o seu parsing facilmente (gramáticas- s,

gramáticas LL (Left scan, Leftmost derivations) gramáticas LR (Left scan, Rightmost derivations)

em Compiladores (3º ano)

ver a mp emen aç o no

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 351

Page 52: Automa Pilha Slides

7/17/2019 Automa Pilha Slides

http://slidepdf.com/reader/full/automa-pilha-slides 52/52

An Introduction to Formal Languages and Automata, Peter Linz, 3rdEd., Jones and Bartelett Computer Science, 2001

o e s o omputat on an orma anguages, . regory ay or,Oxford University Press, 1998.

  , ,

Ed., John Hopcroft, Rajeev Motwani, Jeffrey Ullman,Addison Wesley, 2001.

Elements for the Theory of Computation, Harry Lewis and ChristosPapadimitriou, 2nd Ed., Prentice Hall, 1998.

Introduction th the Theory of Computation, Michael Sipser, PWSPublishing Co, 1997.

© ADC/TC/Cap.7/2009-10/LEI/DEIFCTUC 352