Você está na página 1de 14

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.

br/

Teoria da Computao

Mquinas Universais Mquina com Pilhas

Cristiano Lehrer
http://www.ybadoo.com.br/

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.br/

Introduo

A Mquina com Pilhas diferencia-se das Mquinas de Turing e de Post principalmente pelo fato de possuir uma memria de entrada separada das memrias de trabalho e de sada. Essas estruturas auxiliares so do tipo pilha, e cada mquina possui zero ou mais pilhas. Pilhas constituem um tipo de estrutura de dados usado em Cincia da Computao h algum tempo. Entretanto, somente na dcada de 60, o modelo de Mquina com Pilhas foi formalizado e devidamente estudado.

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.br/

Pilhas versus Poder Computacional (1/3)

Mquina Finita

Uma Mquina Finita, que corresponde a uma Mquina Sem Pilhas, possui um poder computacional relativamente restrito, pois no tem memria auxiliar para armazenar informaes de trabalho. Por exemplo, no existe Mquina Sem Pilhas capaz de reconhecer um n n duplo balanceamento como em {a b | n 0}. Entretanto, uma classe de mquinas de fundamental importncia no estudo das Linguagens Formais, como em editores de textos e analisadores lxicos.

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.br/

Pilhas versus Poder Computacional (2/3)

Mquina com Uma Pilha

A Classe das Mquinas com Uma Pilha, embora mais poderosa que a Classe das Mquinas Finitas, ainda possui uma capacidade computacional restrita. Por exemplo, no existe Mquinas com Uma Pilha capaz de reconhecer n n n um triplo balanceamento, como em {a b c | n 0}. Entretanto, tambm uma classe de mquinas de fundamental importncia no estudo das Linguagens Formais, como em compiladores de linguagens do tipo Pascal.

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.br/

Pilhas versus Poder Computacional (3/3)

Mquina com Duas Pilhas

A Classe das Mquinas com Duas Pilhas possui o mesmo poder computacional que a Classe das Mquinas de Turing ou de Post.

Mquina com Mais de Duas Pilhas

A Classe das Mquinas com Mais de Duas Pilhas possui o mesmo poder computacional que a Classe das Mquinas com Duas Pilhas, ou seja, para qualquer mquina com mais de duas pilhas, possvel construir uma equivalente com, no mximo, duas pilhas que realiza o mesmo processamento.

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.br/

Componentes

Uma Mquina com Pilhas consiste, basicamente, de trs partes:

Varivel X

Trata-se de uma varivel de entrada, similar da Mquina de Post, mas usada somente para entrada. Trata-se de variveis do tipo pilha, e so utilizadas como memria de trabalho e de sada. uma sequncia finita de instrues e representado como um diagrama de fluxos (espcie de fluxograma), onde cada vrtice uma instruo. As instrues podem ser de cinco tipos:

Variveis Yi

Programa

partida, parada, desvio, empilha e desempilha

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.br/

Varivel X

A varivel X no possui tamanho nem limites fixos. Os smbolos pertencem ao alfabeto de entrada. Inicialmente, o valor de X a palavra de entrada e seu comprimento igual ao comprimento da palavra corrente armazenada. Caso X no contenha smbolos, a entrada vazia, representada pela palavra vazia {}.

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.br/

Variveis Yi

As variveis Yi, em nmero varivel, mas finito, tambm no possuem tamanho nem limites fixos, e os smbolos pertencem ao alfabeto de entrada (no existem smbolos auxiliares). Inicialmente, o valor de cada pilha Yi a palavra vazia, e seu comprimento, igual ao comprimento da palavra corrente armazenada. importante observar que, embora os modelos Mquina de Post e Mquina com Pilhas possuam alguma semelhana, existe uma grande diferena na forma de manipular seus dados. Na Mquina de Post, em uma fila, pode-se ler (e remover) smbolos em uma extremidade e armazenar na outra. Assim, os dados circulam. Em uma Mquina com Pilhas, o armazenamento e leitura (e remoo) sempre na mesma extremidade.

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.br/

Componentes do Programa (1/4)

Partida

Existe somente uma instruo de incio (partida) em um programa.


partida

Parada

Existem duas alternativas de instrues de parada em um programa, uma de aceitao (aceita) e outra de rejeio (rejeita).

aceita

rejeita

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.br/

Componentes do Programa (2/4)

Desvio ou Teste

Determina o fluxo do programa de acordo com o smbolo mais esquerda da palavra armazenada na varivel X (incio da fila). Tambm deve ser prevista a possibilidade de X conter a palavra vazia. Portanto, um desvio condicional, e trata-se de uma funo total, ou seja, definida para todos os valores do domnio. Assim, se o cardinal de n, ento existem n+1 arestas de desvios condicionais, pois se deve incluir a possibilidade de . X ler(X) denota uma leitura destrutiva, ou seja, que l o smbolo mais esquerda da palavra, retirando da mesma o smbolo lido.
X ler(X) a1 a2 ... an

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.br/

Componentes do Programa (3/4)

Desempilha

Determina o fluxo do programa de acordo com o smbolo no topo da pilha Yi. Tambm deve ser prevista a possibilidade de Yi conter a palavra vazia. Portanto, um desvio condicional, e trata-se de uma funo total, ou seja, definida para todos os valores do domnio. Assim, se o cardinal de n, ento existem n+1 arestas de desvios condicionais, pois se deve incluir a possibilidade de . Yi ler(Yi) denota uma leitura destrutiva, ou seja, que l o smbolo do topo de Yi, retirando da estrutura o smbolo lido.
Yi ler(Yi) a1 a2 ... an

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.br/

Componentes do Programa (4/4)

Empilha

Empilha um smbolo (pertencente a ) no topo da pilha indicada, ou seja, concatena o smbolo na extremidade da palavra armazenada na varivel Yi.

Yi sYi

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.br/

Definio

Uma Mquina com Pilhas uma dupla M = (, D)

alfabeto de smbolos de entrada

Programa ou diagrama de fluxos, construdos a partir de componentes elementares denominados partida, parada, desvio, empilha e desempilha.

Mquinas Universais Mquina com Pilhas Teoria da Computao http://www.ybadoo.com.br/

Observaes

Em um diagrama de fluxos, existe somente uma instruo de partida, mas podem existir diversas (zero ou mais) instrues de parada, tanto de aceitao como de rejeio. Uma palavra de entrada aceita ou rejeitada, se a computao, iniciada com a varivel X, contendo a entrada, atingir uma instruo aceita ou rejeita, respectivamente. perfeitamente possvel uma Mquina com Pilhas ficar em loop infinito. Em uma instruo de desvio ou desempilha, se X ou Yi contm a palavra vazia, ento segue o fluxo correspondente. Caso contrrio, l o smbolo mais esquerda de X ou no topo de Yi e o remove, aps a deciso de qual aresta do fluxo indica a prxima instruo.

Você também pode gostar