Vous êtes sur la page 1sur 13

Gramticas, Autmatos e Compiladores

Autmato de Pilha
Ricardo Oliveira ricardo@ffm.com.br

Autmatos de Pilha

Em Ingls: Pushdown Automata So como autmatos finitos no determinsticos que tm como componente extra uma pilha A pilha permite que algumas linguagens no regulares sejam reconhecidas O poder computacional dos autmatos de pilha igual ao das gramticas livres de contexto

Autmatos de Pilha

Um autmato de pilha (AP) pode escrever smbolos na pilha, e recuper-los depois A pilha til por causa de sua capacidade infinita de memria

Um AFN incapaz de reconhecer uma linguagem como {0n1n | n 0} por causa de sua capacidade de memria limitada Um AP pode armazenar todos os zers vistos em sua pilha

Autmatos de Pilha

Como trabalha o autmato para a linguagem {0n1n | n 0}:


Smbolos so lidos da entrada Cada 0 lido colocado na pilha Para cada 1 lido retirado um 0 da pilha Se ao fim da entrada a pilha estiver vazia, ela aceita Se a pilha se esvazia enquanto ainda h 1s ou se a pilha ainda contm 0s depois de lido o ltimo 1, ento a entrada rejeitada

Definio Formal de Autmatos de Pilha

A definio formal de um AP similar de um AFN, exceto pela pilha A mquina pode usar diferentes alfabetos para a entrada e para a pilha, ento so usadas variveis diferentes

o alfabeto de entrada e o alfabeto da pilha

O domnio da funo de transio Q x x

onde = U {} e = U {}

Definio Formal de Autmatos de Pilha

A funo de transio pode levar a qualquer estado, escrevendo-se qualquer smbolo na pilha Assim, qualquer combinao de estado + smbolo na pilha possvel O retorno da funo membro de P(Q x ) A funo ento

Q x x P(Q x )

Definio Formal de Autmatos de Pilha

Um Autmato de Pilha definido pela 6-tupla (Q, , , , q0, F) onde


Q o conjunto de estados o alfabeto de entrada o alfabeto da pilha : Q x x P(Q x ) a funo de transio q0 o estado inicial F Q o conjunto de estados finais

Exemplos de Autmatos de Pilha

Para a linguagem {0n1n | n 0} tem-se M1 = (Q, , , , q1, F) onde


Q = {q1, q2, q3, q4} = {0, 1} = {0, $} F = {q1, q4} e a tabela a seguir representa a funo de transio

Exemplos de Autmatos de Pilha

Entrada Pilha q1 q2 q3 q4

0 0 $ 0

1 $ 0 $

{(q2,$)}

{(q2,0)} {(q3,)} {(q3,)} {(q4,)}

Exemplos de Autmatos de Pilha

Tambm pode ser representado atravs de um diagrama As setas de transio tm a forma a, b c, onde:

a o smbolo lido da entrada b o smbolo lido da pilha c o smbolo colocado na pilha Se a = , nenhum smbolo lido da entrada Se b = , nenhum smbolo retirado da pilha Se c = , nenhum smbolo colocado na pilha

Tanto a, b e c podem ser

Exemplos de Autmatos de Pilha

O diagrama para M1 o seguinte:

Exemplos de Autmatos de Pilha

No h um mecanismo explcito para verificar que a pilha est vazia Este efeito conseguido colocando-se logo no incio o smbolo $ na pilha Se este smbolo encontrado novamente, sabe-se que a pilha est efetivamente vazia

Exemplos de Autmatos de Pilha

Construir APs para as linguagens livres de contexto a seguir:


{aibjck | i, j, k 0 e i = j ou i = k} {wwr | w {0,1}* e wr w escrito de trs pra frente}

Vous aimerez peut-être aussi