Escolar Documentos
Profissional Documentos
Cultura Documentos
TEORIA DA COMPUTAÇÃO
Aula 17 - Máquina com Pilhas
2
MÁQUINA COM PILHAS
• Diferencia-se
das máquinas de Turing e Post principalmente
pelo fato de possuir a memória de entrada separada das
memórias de trabalho e de saída
• Cada máquina possui zero ou mais pilhas
empilha desempilha
topo
sentido
de
3
crescimento
base
MÁQUINA COM PILHAS
4
MÁQUINA COM PILHAS
6
MÁQUINA COM PILHAS
7
MÁQUINA COM PILHAS
• Onde:
• alfabeto de símbolos de entrada;
• D programa ou diagrama de fluxos construído a partir de
componentes elementares denominados partida, parada, desvio,
empilha e desempilha
12
MÁQUINA COM PILHAS
• As componentes elementares de um diagrama de fluxos são:
a) Partida: existe somente uma instrução de início (partida) em
um programa
13
MÁQUINA COM PILHAS
c) Desvio (ou Teste) e Desempilha: Determinam o fluxo do
programa de acordo com o símbolo mais à esquerda da
palavra armazenada na variável X (desvio) ou no topo da
pilha Yi (desempilha)
14
MÁQUINA COM PILHAS
São desvios condicionais, se o (alfabeto) é n, então
existem n+1 arestas de desvios condicionais, pois se deve
incluir a possibilidade da palavra vazia
15
MÁQUINA COM PILHAS
16
MÁQUINA COM PILHAS
17
MÁQUINA COM PILHAS
• É possível uma Máquina com Pilhas ficar em loop infinito
18
EXEMPLO - MÁQUINA COM PILHAS
DUPLO BALANCEAMENTO
• Considere a seguinte linguagem
Duplo_Bal = { anbn n 0 }
19
EXEMPLO - MÁQUINA COM PILHAS
DUPLO BALANCEAMENTO
•O algoritmo lê o prefixo de
símbolos a e empilha na única
pilha utilizada Y. Após, para
cada símbolo b em X deve
existir um correspondente a em
Y
20
EXEMPLO - MÁQUINA COM PILHAS
TRIPLO BALANCEAMENTO
21
EXEMPLO - MÁQUINA COM PILHAS
TRIPLO BALANCEAMENTO
• Note-se que foram usadas
duas pilhas. O algoritmo lê o
prefixo de símbolos a e
empilha-os em Y1. Após, para
cada símbolo b em X, deve
existir um correspondente a em
Y1. Adicionalmente, empilha a
subpalavra de símbolos b em
Y2. Por fim, para cada c em X,
deve existir um correspondente
b em Y2
PRÓXIMA AULA:
23