Beruflich Dokumente
Kultur Dokumente
12 Monoltico
Recursivo
Recursivo
PR R1 onde
R1 def (se T1 ento R2 seno R3 )
R2 def F; R3
R3 def (se T2 ento R4 seno R7 )
R4 def G; R5
R5 def (se T1 ento R7 seno R6 )
R6 def F; R1
R7 def
PR R1 onde
R1 def (se T1 ento R2 seno R3 )
R2 def F; R3
R3 def (se T2 ento R4 seno R7 )
R4 def G; R5
R5 def (se T1 ento R7 seno R6 )
R6 def F; R1
R7 def
Simplificado
PR R1 onde
R1 def (se T1 ento F; R2 seno R2 )
R2 def (se T2 ento G; R3 seno )
R3 def (se T1 ento seno F; R1 )
Unidade 3 Mquinas Universais
PR R1 onde
R1 def F; R2
R2 def (se T1 ento R1 seno R3 )
R3 def G; R4
R4 def (se T2 ento R5 seno R1 )
R5 def
PR R1 onde
R1 def F; R2
R2 def (se T1 ento R1 seno R3 )
R3 def G; R4
R4 def (se T2 ento R5 seno R1 )
R5 def
Simplificado
PR R1 onde
R1 def F; (se T1 ento R1 seno R2 )
R2 def G; (se T2 ento seno R1 )
Unidade 3 Mquinas Universais
Monoltico
Fluxograma
Partida
v
T1
T2T2
T
T3
Parada
Monoltico
Fluxograma
Partida
v
T1
f
Parada
T2T2
T
T3
Instrues rotuladas
1
Partida
f
T
v
2
4
v
f
F
v
f
Parada
ProgramaUnidade
P 3 Mquinas Universais
Partida
f
T
4
v
f
T
v
f
Parada
Programa P
1: (F, 2) (Ciclo, )
2: (G, 3) (G, 3)
3: (F, 4) (Parada, )
4: (F, 2) (Ciclo, )
: (Ciclo, ) (Ciclo, )
A0 = {}
A1 = {3, }
A2 = {2, 3, }
A3 = {1, 2, 3, 4, }
A4 = A3
Programa Q
10
Programa Q
6: (F, 7) (Ciclo, )
7: (G, 8) (G, 8)
8: (F, 9) (Parada, )
9: (F, 7) (Ciclo, )
: (Ciclo, ) (Ciclo, )
A0 = {}
A1 = {8, }
A2 = {7, 8, }
A3 = {6, 7, 8, 9, }
A4 = A3
11
12
Teoria da Computao
13
Mquinas Universais
Algoritmo
uma forma de descrever se determinada
propriedade verificada ou no a partir de uma
classe de entrada
14
Mquinas Universais
Noo intuitiva de algoritmo
Sua descrio deve ser finita e no-ambgua
Deve consistir de passos discretos, executveis em
tempo finito
Limitaes de tempo ou espao podem determinar
se um algoritmo pode ou no ser utilizado na
prtica
necessrio definir a mquina a ser considerada
15
Mquinas Universais
Mquinas devem ser:
Simples: permite estabelecer concluses gerais
sobre a classe de funes computveis
Poderosa: capaz de simular qualquer caracterstica
de mquinas reais ou tericas, de tal forma que os
resultados provados sejam vlidos para modelos
aparentemente com mais recursos.
16
Mquinas Universais
Mquina Universal - conceito
Uma mquina dita universal se ela for capaz de
representar qualquer algoritmo como um
programa
17
Mquinas Universais
As evidncias que permitem caracterizar uma
mquina como universal:
Evidncia Interna: Qualquer extenso das
capacidades da mquina universal, computa, no
mximo, a mesma classe de funes, ou seja, no
aumenta o seu poder computacional
Evidncia Externa: Consiste no exame de outros
modelos que definem a noo de algoritmo,
juntamente com a prova de que so, no mximo,
computacionalmente equivalentes.
Unidade 3 Mquinas Universais
18
Mquinas Universais
Mquina Universal modelos a serem estudados
1.
2.
3.
4.
Mquina
Mquina
Mquina
Mquina
Norma
de Turing
de Post
com Pilhas
19
Mquinas Universais
Exemplo de Mquina Universal
1. Mquina Norma
Conjunto de registradores naturais e somente trs
operaes sobre eles
Adio e subtrao do valor um
Teste se o valor armazenado zero
20
Mquinas Universais
2. Mquina de Turing,
1936 por Alan Turing
proposta em
21
Mquinas Universais
Mquina de Turing
marcador de
incio de fita
fita
entrada
cabea
da fita
controle
branco
...
unidade de
controle
22
Mquinas Universais
Mquina de Turing
(au, av, m)
estado corrente
smbolo lido
novo estado
sentido do movimento
smbolo gravado
23
Mquinas Universais
Mquina de Turing
representao
formas
de
24
Mquinas Universais
Mquina de Turing exemplo
Reconhece anbn
25
Mquinas Universais
Mquina Norma X Mquina de Turing
Os registradores da mquina Norma podem
assumir qualquer valor natural to grande quanto
necessrio e, existem tantos registradores quanto
necessrios
A mquina de Turing possui tantas clulas de
armazenamento de dados quanto necessrio
26
Mquinas Universais
3. Mquina de Post: Baseada na estrutura de
dados do tipo fila (o primeiro dado armazenado
o primeiro a ser recuperado)
Fila
Entrada, sada e trabalho
Tamanho inicial igual ao tamanho da cadeia de entrada
Tamanho pode variar sem restries
27
Mquina de Post
X contm entrada
# indica final de X
ler(x) l e remove da fila
Xn insere n na fila
28
Mquinas Universais
4. Mquinas com Pilhas: Baseada na estrutura de
dados do tipo pilha (o ltimo dado armazenado
o primeiro a ser recuperado), onde so
necessrias pelo menos duas pilhas para simular o
mesmo poder computacional de uma fita ou fila
29
30
Mquina Norma
Definida por Richard Bird em 1976
Norma - Number Theoretic Register Machine nome da
esposa dele
A Mquina Universal Norma possui como memria um conjunto
infinito de registradores naturais e trs instrues sobre cada
registrador: adio e subtrao (se 0, continua com 0) do valor um
e teste se o valor armazenado zero.
Para evitar subscritos, os registradores so denotadas por letras
maisculas como A, B, X, Y, ...
Unidade 3 Mquinas Universais
31
Mquina Norma
Norma = (N, X, Y, ent, sai, { adK, subK }, { zeroK })
onde:
Cada elemento do conjunto de valores de memria N denota uma
configurao de seus infinitos registradores, os quais so denotados
por: A, B, ..., X, Y
A funo de entrada: ent: N N carrega no registrador denotado
por X o valor de entrada, iniciando todos os demais registradores com
zero;
Unidade 3 Mquinas Universais
32
Mquina Norma
Norma = (N, N, N, ent, sai, { adK, subK }, { zeroK })
A funo de sada: sai: N N tal que retorna o valor
corrente do registrador denotado por Y;
O conjunto de interpretaes de operaes uma famlia de
operaes indexada pelos registradores, na qual, para cada
registrador K { A, B, X, Y,... }, tem-se que:
adK: N N adiciona um componente correspondente ao
registrador K, deixando as demais com seus valores inalterados.
K:=K+1
33
Mquina Norma
Norma = (N, N, N, ent, sai, { adK, subK }, { zeroK })
O conjunto de interpretaes de operaes uma famlia de
operaes indexada pelos registradores, na qual, para cada
registrador K { A, B, X, Y,... }, tem-se que:
subK: N N
subtrai um da componente correspondente ao
registrador K, se o seu valor for maior que zero (caso contrrio,
mantm o valor zero), deixando as demais com seus valores
inalterados. K:=K-1
34
Mquina Norma
uma mquina extremamente simples, e o seu poder
computacional , no mnimo, o de qualquer computador moderno
Caractersticas de mquinas reais so simuladas usando a Mquina
Norma, reforando as evidncias de que se trata de uma mquina
universal.
35
Mquina Norma
Simulaes suportadas
a) Operaes e Testes: Definio de operaes e testes mais complexos
como adio, subtrao, multiplicao e diviso de dois valores e
tratamento de valores diversos como os nmeros primos;
b) Valores Numricos: Armazenamento e tratamento de valores
numricos de diversos tipos como inteiros (negativos e no-negativos)
e racionais;
c) Dados Estruturados: Armazenamento e tratamento de dados
estruturados como em arranjos (vetores uni e multidimensionais),
pilhas, etc;
d) Endereamento Indireto e recurso: Desvio para uma instruo
determinada pelo contedo de um registrador;
36
Mquina Norma
a) Operaes e Testes
Atribuio do Valor Zero a um Registrador (A:=0)
Programa Iterativo
A := 0
at
A=0
faa (A := A 1)
37
Mquina Norma
Atribuio de um Valor
Registrador (macro: A:=n)
Natural
um
A := n
A := 0;
A := A+1;
A := A+1;
A := A+1
38
Mquina Norma
Adio de Dois Registradores
(macro: A:=A+B)
Programa Iterativo
A := A + B
at B = 0
faa (A:=A+1; B:=B-1)
39
Mquina Norma
Adio de Dois Registradores Preservando o
Contedo (B) (macro: A := A + B usando C)
Programa Iterativo
A := A + B usando C
C := 0;
at
B=0
faa
(A := A + 1; C := C + 1; B := B - 1);
at
C=0
faa
(B := B + 1; C := C - 1)
40
Mquina Norma
Atribuio do Contedo de um Registrador
(macro: A := B usando C)
Programa Iterativo
A := B usando C
A := 0;
A := A + B usando C
B permanece inalterado aps a atribuio
Unidade 3 Mquinas Universais
41
Mquina Norma
Multiplicao de Dois Registradores
(macro: A := A x B usando C, D)
Programa Iterativo
A := A x B usando C, D
C := 0;
at
A=0
faa
(C := C + 1; A := A - 1);
at
C=0
faa
(A := A + B usando D; C := C - 1)
42
Mquina Norma
b) Valores Numricos
Os tipos de dados no definidos na Norma:
inteiros (negativos e positivos)
racionais
43
Mquina Norma
Inteiros
Um valor inteiro m pode ser representado como
um par (s, |m|), onde:
m denota magnitude dada pelo valor absoluto de m;
s denota o sinal de m: se m < 0, ento s = 1 (negativo)
seno s = 0 (positivo)
44
Mquina Norma
Inteiros
Supondo que o registrador inteiro A representado pelo
par (A1, A2) na representao conhecida como sinalmagnitude, ou seja, A1 (sinal) e A2 (magnitude ).
Programa em Norma para executar a operao A := A+1
Programa Iterativo
A := A+1
(se A1 = 0
ento
A2 := A2 + 1
seno A2 := A2 - 1;
(se
A2 = 0
ento
A1 := A1 1
seno ) )
Unidade 3 Mquinas Universais
45
Mquina Norma
b) Valores Numricos
Racionais
Um valor racional r pode ser denotado como um par
ordenado: (a, b) tal que b > 0 e r = a/b.
A representao no nica pois, por exemplo, o valor
racional 0.75 pode ser representado pelos pares (3, 4) e
(6, 8), entre outros.
46
Mquina Norma
b) Valores Numricos
Racionais: Neste contexto, as operaes de adio,
subtrao, multiplicao e diviso, bem como o teste
de igualdade, podem ser definidos como segue:
(a, b) + (c, d) = (a*d + b*c, b*d)
(a, b) - (c, d) = (a*d b*c, b*d)
(a, b) * (c, d) = (a*c, b*d)
(a, b) / (c, d) = (a*d, b*c) (com c 0)
(a, b) = (c, d) se, e somente se, a*d = b*c
47
Mquina Norma
b) Valores Numricos
Racionais: exemplos
Adio 0,25 + 0,75 = 1
(1, 4) + (3, 4) = (4 + 12, 16) = (16, 16)
(a, b) + (c, d) = (a*d + b*c, b*d)
Multiplicao 0,25 * 0,75 = 0,1875
(1, 4) * (3, 4) = (3, 16)
(a, b) * (c, d) = (a*c, b*d)
Teste de igualdade
(1, 4) = (3, 12) e verdadeiro pois, 1*12 = 4*3
(a, b) = (c, d) se, e somente se, a*d = b*c
Unidade 3 Mquinas Universais
48
Mquina Norma
c) Dados Estruturados
Arranjo Unidimensional
Uma estrutura da forma A(1), A(2), , pode ser
representada por um nico registrador A, usando a
codificao de n-uplas naturais;
No necessita ter tamanho mximo pr-definido;
Pode ser indexado de forma direta (nmero natural) ou
indireta (contedo de um registrador)
Operaes:
Adiciona 1 posio indexada
Subtrai 1 de uma posio indexada
Testa se uma posio indexada tem o valor 0
49
Mquina Norma
c) Dados Estruturados
Arranjo Unidimensional
indexao direta. As macros:
adA(n) usando C
subA(n) usando C
zeroA(n) usando C
Onde A(n) denota a n-sima posio do arranjo A
50
Mquina Norma
Arranjo Unidimensional exemplos
indexao direta.
Programa iterativo adA(n) usando C
C:=pn;
A:=AxC
Programa iterativo subA(n) usando C
C:=pn;
(se teste_div(A,C)
ento A:=A/C
seno )
teste_div(A,C)
51
Mquina Norma
c) Dados Estruturados
Arranjo Unidimensional
indexao indireta. As macros:
adA(B) usando C
subA(B) usando C
zeroA(B) usando C
Onde A(B) denota a b-sima posio do arranjo A, onde B o
contedo do registrador B
52
Mquina Norma
Arranjo Unidimensional exemplos
indexao indireta.
Programa iterativo adA(B) usando C
C:=primo(B)
A:=AxC
Programa iterativo subA(B) usando C
C:=primo(B)
(se teste_div(A,C)
ento A:=A/C
seno )
53
Mquina Norma
c) Dados Estruturados
Pilha: pode ser simulada usando 2 registradores
O primeiro representa o contedo da pilha, considerado
como um vetor
O segundo contm o nmero do elemento que corresponde
ao topo da pilha
empilha
desempilha
Operaes:
Empilha
desempilha
topo
sentido
de
crescimento
base
54
Mquinas Universais
Cadeias de Caracteres
Cadeia de caracteres outro tipo de dado no
pr-definido na Mquina Norma.
O tratamento da definio e da manipulao de
cadeias de caracteres ser realizado atravs de
uma outra Mquina Universal, denominada
Mquina de Turing, a qual prova-se, equivalente
Norma.
55
Mquinas Universais
Implemente uma mquina norma qualquer linguagem que
realize as seguintes operaes:
Adio entre dois registradores
Sem preservar contedo obs: utilize nmeros positivos/negativos
Preservando o contedo
56