SlideShare uma empresa Scribd logo
1 de 89
Baixar para ler offline
Fernando Simeone
Computação
Numérica
1 1 1 1 1… …
Sumário
1. Cálculo de Funções
2. Computação Numérica
3. Operações Sequenciais
4. Criando uma Linguagem de Programação
5. Considerações Finais
Cálculo de
Funções1
Máquina de Turing
Reconhecimento de Linguagens
MT = (Q, Σ, Γ, δ, q0)
q0 qs
qn
q1
q2
B a c c b B B B B B B… …Entrada:
Máquina de Turing
Reconhecimento de Linguagens
MT = (Q, Σ, Γ, δ, q0)
q0 qs
qn
q1
q2
B a c c b B B B B B B… …
x Não aceita
✓ Aceita
Entrada:
Máquina de Turing
Cálculo de Funções
MT = (Q, Σ, Γ, δ, q0, qf)
q0 qf
Fim da
computação
B a c c b B B B
Entrada:
M
Máquina de Turing
Cálculo de Funções
MT = (Q, Σ, Γ, δ, q0, qf)
q0 qf
Fim da
computação
B a c c b B B B
Entrada:
B a a B B B B B
Resultado:
M
Máquina de Turing
Cálculo de Funções (Turing computáveis)
MT = (Q, Σ, Γ, δ, q0, qf)
q0 qf
Fim da
computação
B a c c b B B B
Entrada:
B B B B B B B B
Resultado:
q1 q2
(B, B, ➞)
(B, B, ➞)
(b, b, ➞)
(b, b, ➞)
(a, a, ➞)
(a, a, ➞) (B, B, ➞)
(b, B, ➞)
(a, B, ➞)
Máquina de Turing
Cálculo de Funções
MT = (Q, Σ, Γ, δ, q0, qf) computa f: ∑* ⟶ ∑*
q0 qfq1 q2
(B, B, ➞)
(B, B, ➞)
(b, b, ➞)
(b, b, ➞)
(a, a, ➞)
(a, a, ➞) (B, B, ➞)
(b, B, ➞)
(a, B, ➞)
Máquina de Turing
Cálculo de Funções
MT = (Q, Σ, Γ, δ, q0, qf) computa f: ∑* ⟶ ∑*
q0 qfq1 q2
(B, B, ➞)
(B, B, ➞)
(b, b, ➞)
(b, b, ➞)
(a, a, ➞)
(a, a, ➞) (B, B, ➞)
(b, B, ➞)
(a, B, ➞)
• Apenas uma transição partindo do estado q0: δ(q0,B) = [qi, B, ➞];
Máquina de Turing
Cálculo de Funções
MT = (Q, Σ, Γ, δ, q0, qf) computa f: ∑* ⟶ ∑*
q0 qfq1 q2
(B, B, ➞)
(B, B, ➞)
(b, b, ➞)
(b, b, ➞)
(a, a, ➞)
(a, a, ➞) (B, B, ➞)
(b, B, ➞)
(a, B, ➞)
• Apenas uma transição partindo do estado q0: δ(q0,B) = [qi, B, ➞];
• Não há transições que retornam para q0;
Máquina de Turing
Cálculo de Funções
MT = (Q, Σ, Γ, δ, q0, qf) computa f: ∑* ⟶ ∑*
q0 qfq1 q2
(B, B, ➞)
(B, B, ➞)
(b, b, ➞)
(b, b, ➞)
(a, a, ➞)
(a, a, ➞) (B, B, ➞)
(b, B, ➞)
(a, B, ➞)
• Apenas uma transição partindo do estado q0: δ(q0,B) = [qi, B, ➞];
• Não há transições que retornam para q0;
• Não há transições na forma δ(qf,B);
Máquina de Turing
Cálculo de Funções
MT = (Q, Σ, Γ, δ, q0, qf) computa f: ∑* ⟶ ∑*
q0 qfq1 q2
(B, B, ➞)
(B, B, ➞)
(b, b, ➞)
(b, b, ➞)
(a, a, ➞)
(a, a, ➞) (B, B, ➞)
(b, B, ➞)
(a, B, ➞)
• Apenas uma transição partindo do estado q0: δ(q0,B) = [qi, B, ➞];
• Não há transições que retornam para q0;
• Não há transições na forma δ(qf,B);
• A MT com entrada u para com configuração q0
BvB se f(u) = v;
Máquina de Turing
Cálculo de Funções
MT = (Q, Σ, Γ, δ, q0, qf) computa f: ∑* ⟶ ∑*
q0 qfq1 q2
(B, B, ➞)
(B, B, ➞)
(b, b, ➞)
(b, b, ➞)
(a, a, ➞)
(a, a, ➞) (B, B, ➞)
(b, B, ➞)
(a, B, ➞)
• Apenas uma transição partindo do estado q0: δ(q0,B) = [qi, B, ➞];
• Não há transições que retornam para q0;
• Não há transições na forma δ(qf,B);
• A MT com entrada u para com configuração q0
BvB se f(u) = v;
• A MT não pára se f(u) for indefinido.
Máquina de Turing
Lendo argumentos e escrevendo resultado
Máquina de Turing
Lendo argumentos e escrevendo resultado
B a b B B B B B B B B B b a B B
• f(ab) = ba
Entrada Resultado
Máquina de Turing
Lendo argumentos e escrevendo resultado
B a b B B B B B B B B B b a B B
• f(ab) = ba
Entrada Resultado
B a b B c c B b a c B B a b B B
• f(ab, cc, bac) = ab
Entrada Resultado
Máquina de Turing
Lendo argumentos e escrevendo resultado
B a b B B B B B B B B B b a B B
• f(ab) = ba
Entrada Resultado
B a b B c c B b a c B B a b B B
• f(ab, cc, bac) = ab
Entrada Resultado
B a b B B b a c B B B B B B B B
• f(ab, λ, bac) = λ
Entrada Resultado
Cálculo de Funções
Exemplo: concatenando palavras
q0 q1
(B, B, ➞)
q2
q5
q3
q4
q6
qf
(b, b, ➞)
(a, a, ➞)
(B, B, ➞)
(a, B, ←) (B, a, ➞)
(b, B, ←) (B, b, ➞)
(B, B, ➞)
(B, B, ←)
(B, B, ←)
(b, b, ←)
(a, a, ←)
B a b B b a B
Entrada Resultado
B a b b a B B
Computação
Numérica2
Funções Numéricas
Funções Numéricas
• f: N × N × N × … × N ⟶ N
Funções Numéricas
• f: N × N × N × … × N ⟶ N
• Exemplos
Funções Numéricas
• f: N × N × N × … × N ⟶ N
• Exemplos
• sq(n) = n2
Funções Numéricas
• f: N × N × N × … × N ⟶ N
• Exemplos
• sq(n) = n2
• db(n) = 2n
Funções Numéricas
• f: N × N × N × … × N ⟶ N
• Exemplos
• sq(n) = n2
• db(n) = 2n
• add(x, y) = x + y
Representação
Como representar números na fita
Representação
• n = 1n+1
Como representar números na fita
Representação
• n = 1n+1
• 0 = 1
Como representar números na fita
Representação
• n = 1n+1
• 0 = 1
• 1 = 11
Como representar números na fita
Representação
• n = 1n+1
• 0 = 1
• 1 = 11
• 2 = 111
Como representar números na fita
Representação
Como representar números na fita
Representação
Como representar números na fita
B 1 1 1 B B B B B B B B 1 1 B B
• f(2) = 1
Entrada Resultado
Representação
Como representar números na fita
B 1 1 1 B B B B B B B B 1 1 B B
• f(2) = 1
Entrada Resultado
B 1 1 1 1 B 1 B B B B B 1 1 1 B
• f(3, 0) = 2
Entrada Resultado
Cálculo Funções Numéricas
Sucessor
q0 q1
(B, B, ➞)
qf
(1, 1, ➞)
(B, 1, ➞)
(1, 1, ←)
B 1 1 1 B B B
Entrada Resultado
B 1 1 1 1 B B
S:
• s(n) = n + 1
Cálculo Funções Numéricas
Zero
q0 q1
(B, B, ➞)
qf
(1, 1, ➞)
(B, B, ←)
B 1 1 1 B B B
Entrada Resultado
B 1 B B B B B
Z:
• z(n) = 0
q2
(1, B, ←)
(B, B, ➞) (B, 1, ←)
q3
Cálculo Funções Numéricas
Adição
q0 q1
(B, B, ➞)
qf
(1, 1, ➞)
(B, 1, ➞)
Entrada Resultado
B 1 1 1 1 B B
A:
• a(n, m) = n + m
q2
(1, 1, ➞)
(B, B, ←) (1, B, ←)
q3
(1, B, ←)
q4
(1, 1, ←)
B 1 1 B 1 1 1 B
Cálculo Funções Numéricas
Decremento
q0 q1
(B, B, ➞)
qf
(1, 1, ➞)
Entrada Resultado
B 1 1 B B B B
D:
• a(n) = n - 1
q2
(1, 1, ➞)
(1, 1, ➞)
(B, B, ←)
q3
(B, B, ←)
q4
(1, 1, ←)
B 1 1 1 B B B B
(1, B, ←)
Operações
Sequenciais3
Operações Sequenciais
Com máquinas de Turing
qs,0
qs,1
(B, B, ➞)
qs,f
(1, 1, ➞)
(B, 1, ➞)
(1, 1, ←)
S:
qz,0
qz,1
(B, B, ➞)
qz,f
(1, 1, ➞)
(B, B, ←)
Z: qz,2
(1, B, ←)
(B, B, ➞) (B, 1, ←)
qz,3
Zero
Sucessor
z(n) = 0
s(n) = n + 1
Operações Sequenciais
Com máquinas de Turing
qs,0
qs,1
(B, B, ➞)
qs,f
(1, 1, ➞)
(B, 1, ➞)
(1, 1, ←)
S:
qz,0
qz,1
(B, B, ➞)
qz,f
(1, 1, ➞)
(B, B, ←)
Z: qz,2
(1, B, ←)
(B, B, ➞) (B, 1, ←)
qz,3
Zero
Sucessor
z(n) = 0
s(n) = n + 1
Operações Sequenciais
Com máquinas de Turing
qs,1
(B, B, ➞)
qs,f
(1, 1, ➞) (B, 1, ➞)
(1, 1, ←)
qz,0
qz,1
(B, B, ➞)
qz,f
= qs,0
(1, 1, ➞)
(B, B, ←)
qz,2
(1, B, ←)
(B, B, ➞) (B, 1, ←)
qz,3
s( z(n) ) = 0 + 1 = 1
Operações Sequenciais
Com máquinas de Turing
qs,1
(B, B, ➞)
qs,f
(1, 1, ➞) (B, 1, ➞)
(1, 1, ←)
qz,0
qz,1
(B, B, ➞)
qz,f
= qs,0
(1, 1, ➞)
(B, B, ←)
qz,2
(1, B, ←)
(B, B, ➞) (B, 1, ←)
qz,3
s( z(n) ) = 0 + 1 = 1
Operações Sequenciais
Macros
*
f(n) = s( z(n) )
Z * S *F:
Operações Sequenciais
Macros
*
f(n) = s( z(n) )
Z * S *
• Nem todas as computações irão iniciar com a cabeça de leitura na
posição 0 da fita;
F:
Operações Sequenciais
Macros
*
f(n) = s( z(n) )
Z * S *
• Nem todas as computações irão iniciar com a cabeça de leitura na
posição 0 da fita;
F:
Operações Sequenciais
Macros
*
f(n) = s( z(n) )
Z * S *
• Nem todas as computações irão iniciar com a cabeça de leitura na
posição 0 da fita;
• Toda computação deve iniciar lendo o símbolo branco (B) da fita.
F:
Macros
Notação utilizada
B n1 B n2 B … B nk B
Macros
Notação utilizada
B n1 B n2 B … B nk B
k-ésimo número na fita"
(sequência de 1s)
Macros
Notação utilizada
B n1 B n2 B … B nk B
k-ésimo número na fita"
(sequência de 1s)
B 1 1 B 1 1 1 B B
Exemplo:
{
{
n1 n2
Macros
Exemplo
MRk B n1 B n2 B … B nk B
Move Right
B n1 B n2 B … B nk B
Macros
Exemplo
q0 q1
(B, B, ➞)
qf
(1, 1, ➞)
(B, B, ➞)
MR2:
(1, 1, ➞)
MRk B n1 B n2 B … B nk B
Move Right
B n1 B n2 B … B nk B
Macros
Exemplo
q0 q1
(B, B, ➞)
qf
(1, 1, ➞)
(B, B, ➞)
MR2:
(1, 1, ➞)
MRk B n1 B n2 B … B nk B
Move Right
B n1 B n2 B … B nk B
q0 q1
(B, B, ➞)
qf
(1, 1, ➞)
(B, B, ➞)
MRk:
(1, 1, ➞)
(B, B, ➞)
qk-1
(1, 1, ➞)
…
(B, B, ➞)
Macros
MRk B n1 B n2 B … B nk B
Move Right
B n1 B n2 B … B nk B
Macros
MRk B n1 B n2 B … B nk B
Move Right
B n1 B n2 B … B nk B
MLk B n1 B n2 B … B nk B
Move Left
B n1 B n2 B … B nk B
Macros
MRk B n1 B n2 B … B nk B
Move Right
B n1 B n2 B … B nk B
MLk B n1 B n2 B … B nk B
Move Left
B n1 B n2 B … B nk B
FR B B B n1 B n2 B B
Find Right
B B B n1 B n2 B B
Macros
MRk B n1 B n2 B … B nk B
Move Right
B n1 B n2 B … B nk B
MLk B n1 B n2 B … B nk B
Move Left
B n1 B n2 B … B nk B
FR B B B n1 B n2 B B
Find Right
B B B n1 B n2 B B
FL
Find Left
B BB n1 B n2 B B B BB n1 B n2 B B
Macros
MRk B n1 B n2 B … B nk B
Move Right
B n1 B n2 B … B nk B
MLk B n1 B n2 B … B nk B
Move Left
B n1 B n2 B … B nk B
FR B B B n1 B n2 B B
Find Right
B B B n1 B n2 B B
FL
Find Left
B BB n1 B n2 B B B BB n1 B n2 B B
Ek
Erase
B B B B B … B B BB n1 B n2 B … B nk B
Macros
CPYk
Copy
B n1 B n2 B … B nk B B B B B … B B B
B n1 B n2 B … B nk B n1 B n2 B … B nk B
Macros
CPYk
Copy
B n1 B n2 B … B nk B B B B B … B B B
B n1 B n2 B … B nk B n1 B n2 B … B nk B
CPYk, i
Copy
B n1 B … B nk B B nk+i… B B B … B B B
B n1 B … B nk B B nk+i… B n1 B … B nk B
Macros
CPYk
Copy
B n1 B n2 B … B nk B B B B B … B B B
B n1 B n2 B … B nk B n1 B n2 B … B nk B
CPYk, i
Copy
B n1 B … B nk B B nk+i… B B B … B B B
B n1 B … B nk B B nk+i… B n1 B … B nk B
T B B B n1 B B B B
Translate
B BBn1 B B B B
Macros
BRN
Branch on zero
B n1 B n2 B … B nk B B n1 B n2 B … B nk B
* BRN
n = 0
n > 0
*
*
INT
Interchange
B n B m B B B
* * E1 * T * MR1 * T * ML1 *CPY1,1
B m B n B B B
Utilizando outras macros
Macros
* * MR1 * * A * ML1 * A *CPY1
Exemplo de utilização
Macros
• f(n) = 3n
CPY1
Exemplo de utilização
Macros
T
*
E1 * ML1 *q
0
(B, B, ➞)
q
1
(1, 1, ➞)
q
2
(B, B, ➞)
E1
*
T
q
3
CPY1
*
q
5
q
4
ML1A *MR1 *CPY1,1
q
8
q
7
q
6
*
MULT:
(1, X, ➞)
(1, 1, ➞)
(B, B, ➞)
(B, B, ←)
(X, B, ←) (B, B, ➞)
(X, B, ←)
(1, B, ←)
(1, 1, ←)
(1, 1, ←)
(X, X, ➞)(1, X, ➞)
(1, 1, ➞)
(B, B, ➞)
Criando uma
Linguagem de
Programação
4
Arquitetura
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de
entrada
Variáveis
locais
Registradores e
espaço de trabalho
home
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
Início
INIT v Inicializa variável local
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
Início
INIT v Inicializa variável local
HOME t Move a cabeça de leitura para home quando há t variáveis alocadas.
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
Início
INIT v Inicializa variável local
HOME t Move a cabeça de leitura para home quando há t variáveis alocadas.
LOAD v Carrega a variável
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
Início
INIT v Inicializa variável local
HOME t Move a cabeça de leitura para home quando há t variáveis alocadas.
LOAD v Carrega a variável
STOR v Armazena o valor do registrador
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
Início
INIT v Inicializa variável local
HOME t Move a cabeça de leitura para home quando há t variáveis alocadas.
LOAD v Carrega a variável
STOR v Armazena o valor do registrador
RETURN v Limpa todas as variáveis deixando o valor de
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
Início
INIT v Inicializa variável local
HOME t Move a cabeça de leitura para home quando há t variáveis alocadas.
LOAD v Carrega a variável
STOR v Armazena o valor do registrador
RETURN v Limpa todas as variáveis deixando o valor de
CLEAR t Limpa o valor do registrador t
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
Início
INIT v Inicializa variável local
HOME t Move a cabeça de leitura para home quando há t variáveis alocadas.
LOAD v Carrega a variável
STOR v Armazena o valor do registrador
RETURN v Limpa todas as variáveis deixando o valor de
CLEAR t Limpa o valor do registrador t
BRN L, t Vai para a instrução L se o valor do registrador t é 0.
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
Início
INIT v Inicializa variável local
HOME t Move a cabeça de leitura para home quando há t variáveis alocadas.
LOAD v Carrega a variável
STOR v Armazena o valor do registrador
RETURN v Limpa todas as variáveis deixando o valor de
CLEAR t Limpa o valor do registrador t
BRN L, t Vai para a instrução L se o valor do registrador t é 0.
GOTO L Executa a instrução L.
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
Início
INIT v Inicializa variável local
HOME t Move a cabeça de leitura para home quando há t variáveis alocadas.
LOAD v Carrega a variável
STOR v Armazena o valor do registrador
RETURN v Limpa todas as variáveis deixando o valor de
CLEAR t Limpa o valor do registrador t
BRN L, t Vai para a instrução L se o valor do registrador t é 0.
GOTO L Executa a instrução L.
NOP “No operation” (utilizada em conjunto com a instruçõ GOTO)
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
Início
INIT v Inicializa variável local
HOME t Move a cabeça de leitura para home quando há t variáveis alocadas.
LOAD v Carrega a variável
STOR v Armazena o valor do registrador
RETURN v Limpa todas as variáveis deixando o valor de
CLEAR t Limpa o valor do registrador t
BRN L, t Vai para a instrução L se o valor do registrador t é 0.
GOTO L Executa a instrução L.
NOP “No operation” (utilizada em conjunto com a instruçõ GOTO)
INC t Incrementa o valor do registrador t.
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
Início
INIT v Inicializa variável local
HOME t Move a cabeça de leitura para home quando há t variáveis alocadas.
LOAD v Carrega a variável
STOR v Armazena o valor do registrador
RETURN v Limpa todas as variáveis deixando o valor de
CLEAR t Limpa o valor do registrador t
BRN L, t Vai para a instrução L se o valor do registrador t é 0.
GOTO L Executa a instrução L.
NOP “No operation” (utilizada em conjunto com a instruçõ GOTO)
INC t Incrementa o valor do registrador t.
DEC t Decrementa o valor do registrador t.
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
Início
INIT v Inicializa variável local
HOME t Move a cabeça de leitura para home quando há t variáveis alocadas.
LOAD v Carrega a variável
STOR v Armazena o valor do registrador
RETURN v Limpa todas as variáveis deixando o valor de
CLEAR t Limpa o valor do registrador t
BRN L, t Vai para a instrução L se o valor do registrador t é 0.
GOTO L Executa a instrução L.
NOP “No operation” (utilizada em conjunto com a instruçõ GOTO)
INC t Incrementa o valor do registrador t.
DEC t Decrementa o valor do registrador t.
ZERO t Substitui o valor do registrador t por 0.
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
Início
Instruções
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
home
Instruções
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
home
HOME t
MR t
Instruções
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
home
INIT vi
MR i - 1
ZR
ML i - 1
HOME t
MR t
Instruções
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
home
INIT vi
MR i - 1
ZR
ML i - 1
HOME t
MR t
STOR vi, t
MR t - 2
INT
ML1
INT
MR1
INT
MR 1
ER 1
ML t - 1
( )
( )
t + n - i - 1
t + n - i - 1
Instruções
B v1 B v2 B … B vk B vk+1 B vn B … B B B… B …
Variáveis de entrada Variáveis locais Registradores e espaço de trabalho
home
INIT vi
MR i - 1
ZR
ML i - 1
HOME t
MR t
STOR vi, t
MR t - 2
INT
ML1
INT
MR1
INT
MR 1
ER 1
ML t - 1
( )
( )
t + n - i - 1
t + n - i - 1
LOAD vi, t
ML n - i + 1
CPY 1, n - i + 1 + t
MR n - i + 1
Exemplo
INIT v2
INIT v3
HOME 3
LOAD v1,1
STOR v2,1
L1 LOAD v2,1
BRN L2,1
LOAD v1,1
INC
STOR v1,1
LOAD v2,1
DEC
STOR v2,1
GOTO L1
L2 LOAD v1,1
INC
STOR v1,1
RETURN v1
Início
• f(n) = 2n + 1
Considerações
Finais5
Referências
• SUDKAMP, T. A. Languages and Machines: An
Introduction to the Theory of Computer Science
(3rd Edition). Boston, MA, USA: Addison-
Wesley Longman Publishing Co., Inc., 2005.
ISBN 0321322215.
Obrigado
Dúvidas ??

Mais conteúdo relacionado

Mais procurados

Sistema Gerenciador Para um Salão de Beleza
Sistema Gerenciador Para um Salão de BelezaSistema Gerenciador Para um Salão de Beleza
Sistema Gerenciador Para um Salão de BelezaDaiana de Ávila
 
Entendendo a profissão Assistente administrativo
Entendendo a profissão Assistente administrativoEntendendo a profissão Assistente administrativo
Entendendo a profissão Assistente administrativoValéria Lins
 
Matemática - Equação do 1°Grau - www.CentroApoio.com - Vídeo Aulas
Matemática - Equação do 1°Grau - www.CentroApoio.com - Vídeo AulasMatemática - Equação do 1°Grau - www.CentroApoio.com - Vídeo Aulas
Matemática - Equação do 1°Grau - www.CentroApoio.com - Vídeo AulasVídeo Aulas Apoio
 
Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Leinylson Fontinele
 
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Leinylson Fontinele
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesElaine Cecília Gatto
 
Análise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução FinitaAnálise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução FinitaDelacyr Ferreira
 
Unidade 2 conceitos, funções e objetivos do sp
Unidade 2   conceitos, funções e objetivos do spUnidade 2   conceitos, funções e objetivos do sp
Unidade 2 conceitos, funções e objetivos do spDaniel Moura
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosMauro Pereira
 
Mapas de Karnaugh (introdução, até 4 variáveis)
Mapas de Karnaugh (introdução, até 4 variáveis)Mapas de Karnaugh (introdução, até 4 variáveis)
Mapas de Karnaugh (introdução, até 4 variáveis)Fernando Passold
 
POP Procedimento operacional padrao - atendimento primeira consulta clinica o...
POP Procedimento operacional padrao - atendimento primeira consulta clinica o...POP Procedimento operacional padrao - atendimento primeira consulta clinica o...
POP Procedimento operacional padrao - atendimento primeira consulta clinica o...Senior Consultoria em Gestão e Marketing
 
Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Thayse
 

Mais procurados (20)

Sistema Gerenciador Para um Salão de Beleza
Sistema Gerenciador Para um Salão de BelezaSistema Gerenciador Para um Salão de Beleza
Sistema Gerenciador Para um Salão de Beleza
 
Flúor
FlúorFlúor
Flúor
 
Entendendo a profissão Assistente administrativo
Entendendo a profissão Assistente administrativoEntendendo a profissão Assistente administrativo
Entendendo a profissão Assistente administrativo
 
2 maquina de post
2 maquina de post2 maquina de post
2 maquina de post
 
Viewport (OpenGL)
Viewport (OpenGL)Viewport (OpenGL)
Viewport (OpenGL)
 
Matemática - Equação do 1°Grau - www.CentroApoio.com - Vídeo Aulas
Matemática - Equação do 1°Grau - www.CentroApoio.com - Vídeo AulasMatemática - Equação do 1°Grau - www.CentroApoio.com - Vídeo Aulas
Matemática - Equação do 1°Grau - www.CentroApoio.com - Vídeo Aulas
 
Programacao linear aula 3 metodo grafico
Programacao linear   aula 3 metodo graficoProgramacao linear   aula 3 metodo grafico
Programacao linear aula 3 metodo grafico
 
03 linguagens regulares
03   linguagens regulares03   linguagens regulares
03 linguagens regulares
 
Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
Análise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução FinitaAnálise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução Finita
 
Aula 6 - Cardinalidade
Aula 6 - CardinalidadeAula 6 - Cardinalidade
Aula 6 - Cardinalidade
 
Unidade 2 conceitos, funções e objetivos do sp
Unidade 2   conceitos, funções e objetivos do spUnidade 2   conceitos, funções e objetivos do sp
Unidade 2 conceitos, funções e objetivos do sp
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Mapas de Karnaugh (introdução, até 4 variáveis)
Mapas de Karnaugh (introdução, até 4 variáveis)Mapas de Karnaugh (introdução, até 4 variáveis)
Mapas de Karnaugh (introdução, até 4 variáveis)
 
POP Procedimento operacional padrao - atendimento primeira consulta clinica o...
POP Procedimento operacional padrao - atendimento primeira consulta clinica o...POP Procedimento operacional padrao - atendimento primeira consulta clinica o...
POP Procedimento operacional padrao - atendimento primeira consulta clinica o...
 
Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0
 
Estrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas EncadeadasEstrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas Encadeadas
 

Mais de Fernando Simeone

Mais de Fernando Simeone (6)

Hierarquia de Chomsky
Hierarquia de ChomskyHierarquia de Chomsky
Hierarquia de Chomsky
 
Algoritmos aproximativos
Algoritmos aproximativosAlgoritmos aproximativos
Algoritmos aproximativos
 
Algoritmo SMA*
Algoritmo SMA*Algoritmo SMA*
Algoritmo SMA*
 
Algoritmo Counting sort
Algoritmo Counting sortAlgoritmo Counting sort
Algoritmo Counting sort
 
Javascript
JavascriptJavascript
Javascript
 
Guia da Startup
Guia da StartupGuia da Startup
Guia da Startup
 

Computacao Numérica

  • 2. Sumário 1. Cálculo de Funções 2. Computação Numérica 3. Operações Sequenciais 4. Criando uma Linguagem de Programação 5. Considerações Finais
  • 4. Máquina de Turing Reconhecimento de Linguagens MT = (Q, Σ, Γ, δ, q0) q0 qs qn q1 q2 B a c c b B B B B B B… …Entrada:
  • 5. Máquina de Turing Reconhecimento de Linguagens MT = (Q, Σ, Γ, δ, q0) q0 qs qn q1 q2 B a c c b B B B B B B… … x Não aceita ✓ Aceita Entrada:
  • 6. Máquina de Turing Cálculo de Funções MT = (Q, Σ, Γ, δ, q0, qf) q0 qf Fim da computação B a c c b B B B Entrada: M
  • 7. Máquina de Turing Cálculo de Funções MT = (Q, Σ, Γ, δ, q0, qf) q0 qf Fim da computação B a c c b B B B Entrada: B a a B B B B B Resultado: M
  • 8. Máquina de Turing Cálculo de Funções (Turing computáveis) MT = (Q, Σ, Γ, δ, q0, qf) q0 qf Fim da computação B a c c b B B B Entrada: B B B B B B B B Resultado: q1 q2 (B, B, ➞) (B, B, ➞) (b, b, ➞) (b, b, ➞) (a, a, ➞) (a, a, ➞) (B, B, ➞) (b, B, ➞) (a, B, ➞)
  • 9. Máquina de Turing Cálculo de Funções MT = (Q, Σ, Γ, δ, q0, qf) computa f: ∑* ⟶ ∑* q0 qfq1 q2 (B, B, ➞) (B, B, ➞) (b, b, ➞) (b, b, ➞) (a, a, ➞) (a, a, ➞) (B, B, ➞) (b, B, ➞) (a, B, ➞)
  • 10. Máquina de Turing Cálculo de Funções MT = (Q, Σ, Γ, δ, q0, qf) computa f: ∑* ⟶ ∑* q0 qfq1 q2 (B, B, ➞) (B, B, ➞) (b, b, ➞) (b, b, ➞) (a, a, ➞) (a, a, ➞) (B, B, ➞) (b, B, ➞) (a, B, ➞) • Apenas uma transição partindo do estado q0: δ(q0,B) = [qi, B, ➞];
  • 11. Máquina de Turing Cálculo de Funções MT = (Q, Σ, Γ, δ, q0, qf) computa f: ∑* ⟶ ∑* q0 qfq1 q2 (B, B, ➞) (B, B, ➞) (b, b, ➞) (b, b, ➞) (a, a, ➞) (a, a, ➞) (B, B, ➞) (b, B, ➞) (a, B, ➞) • Apenas uma transição partindo do estado q0: δ(q0,B) = [qi, B, ➞]; • Não há transições que retornam para q0;
  • 12. Máquina de Turing Cálculo de Funções MT = (Q, Σ, Γ, δ, q0, qf) computa f: ∑* ⟶ ∑* q0 qfq1 q2 (B, B, ➞) (B, B, ➞) (b, b, ➞) (b, b, ➞) (a, a, ➞) (a, a, ➞) (B, B, ➞) (b, B, ➞) (a, B, ➞) • Apenas uma transição partindo do estado q0: δ(q0,B) = [qi, B, ➞]; • Não há transições que retornam para q0; • Não há transições na forma δ(qf,B);
  • 13. Máquina de Turing Cálculo de Funções MT = (Q, Σ, Γ, δ, q0, qf) computa f: ∑* ⟶ ∑* q0 qfq1 q2 (B, B, ➞) (B, B, ➞) (b, b, ➞) (b, b, ➞) (a, a, ➞) (a, a, ➞) (B, B, ➞) (b, B, ➞) (a, B, ➞) • Apenas uma transição partindo do estado q0: δ(q0,B) = [qi, B, ➞]; • Não há transições que retornam para q0; • Não há transições na forma δ(qf,B); • A MT com entrada u para com configuração q0 BvB se f(u) = v;
  • 14. Máquina de Turing Cálculo de Funções MT = (Q, Σ, Γ, δ, q0, qf) computa f: ∑* ⟶ ∑* q0 qfq1 q2 (B, B, ➞) (B, B, ➞) (b, b, ➞) (b, b, ➞) (a, a, ➞) (a, a, ➞) (B, B, ➞) (b, B, ➞) (a, B, ➞) • Apenas uma transição partindo do estado q0: δ(q0,B) = [qi, B, ➞]; • Não há transições que retornam para q0; • Não há transições na forma δ(qf,B); • A MT com entrada u para com configuração q0 BvB se f(u) = v; • A MT não pára se f(u) for indefinido.
  • 15. Máquina de Turing Lendo argumentos e escrevendo resultado
  • 16. Máquina de Turing Lendo argumentos e escrevendo resultado B a b B B B B B B B B B b a B B • f(ab) = ba Entrada Resultado
  • 17. Máquina de Turing Lendo argumentos e escrevendo resultado B a b B B B B B B B B B b a B B • f(ab) = ba Entrada Resultado B a b B c c B b a c B B a b B B • f(ab, cc, bac) = ab Entrada Resultado
  • 18. Máquina de Turing Lendo argumentos e escrevendo resultado B a b B B B B B B B B B b a B B • f(ab) = ba Entrada Resultado B a b B c c B b a c B B a b B B • f(ab, cc, bac) = ab Entrada Resultado B a b B B b a c B B B B B B B B • f(ab, λ, bac) = λ Entrada Resultado
  • 19. Cálculo de Funções Exemplo: concatenando palavras q0 q1 (B, B, ➞) q2 q5 q3 q4 q6 qf (b, b, ➞) (a, a, ➞) (B, B, ➞) (a, B, ←) (B, a, ➞) (b, B, ←) (B, b, ➞) (B, B, ➞) (B, B, ←) (B, B, ←) (b, b, ←) (a, a, ←) B a b B b a B Entrada Resultado B a b b a B B
  • 22. Funções Numéricas • f: N × N × N × … × N ⟶ N
  • 23. Funções Numéricas • f: N × N × N × … × N ⟶ N • Exemplos
  • 24. Funções Numéricas • f: N × N × N × … × N ⟶ N • Exemplos • sq(n) = n2
  • 25. Funções Numéricas • f: N × N × N × … × N ⟶ N • Exemplos • sq(n) = n2 • db(n) = 2n
  • 26. Funções Numéricas • f: N × N × N × … × N ⟶ N • Exemplos • sq(n) = n2 • db(n) = 2n • add(x, y) = x + y
  • 28. Representação • n = 1n+1 Como representar números na fita
  • 29. Representação • n = 1n+1 • 0 = 1 Como representar números na fita
  • 30. Representação • n = 1n+1 • 0 = 1 • 1 = 11 Como representar números na fita
  • 31. Representação • n = 1n+1 • 0 = 1 • 1 = 11 • 2 = 111 Como representar números na fita
  • 33. Representação Como representar números na fita B 1 1 1 B B B B B B B B 1 1 B B • f(2) = 1 Entrada Resultado
  • 34. Representação Como representar números na fita B 1 1 1 B B B B B B B B 1 1 B B • f(2) = 1 Entrada Resultado B 1 1 1 1 B 1 B B B B B 1 1 1 B • f(3, 0) = 2 Entrada Resultado
  • 35. Cálculo Funções Numéricas Sucessor q0 q1 (B, B, ➞) qf (1, 1, ➞) (B, 1, ➞) (1, 1, ←) B 1 1 1 B B B Entrada Resultado B 1 1 1 1 B B S: • s(n) = n + 1
  • 36. Cálculo Funções Numéricas Zero q0 q1 (B, B, ➞) qf (1, 1, ➞) (B, B, ←) B 1 1 1 B B B Entrada Resultado B 1 B B B B B Z: • z(n) = 0 q2 (1, B, ←) (B, B, ➞) (B, 1, ←) q3
  • 37. Cálculo Funções Numéricas Adição q0 q1 (B, B, ➞) qf (1, 1, ➞) (B, 1, ➞) Entrada Resultado B 1 1 1 1 B B A: • a(n, m) = n + m q2 (1, 1, ➞) (B, B, ←) (1, B, ←) q3 (1, B, ←) q4 (1, 1, ←) B 1 1 B 1 1 1 B
  • 38. Cálculo Funções Numéricas Decremento q0 q1 (B, B, ➞) qf (1, 1, ➞) Entrada Resultado B 1 1 B B B B D: • a(n) = n - 1 q2 (1, 1, ➞) (1, 1, ➞) (B, B, ←) q3 (B, B, ←) q4 (1, 1, ←) B 1 1 1 B B B B (1, B, ←)
  • 40. Operações Sequenciais Com máquinas de Turing qs,0 qs,1 (B, B, ➞) qs,f (1, 1, ➞) (B, 1, ➞) (1, 1, ←) S: qz,0 qz,1 (B, B, ➞) qz,f (1, 1, ➞) (B, B, ←) Z: qz,2 (1, B, ←) (B, B, ➞) (B, 1, ←) qz,3 Zero Sucessor z(n) = 0 s(n) = n + 1
  • 41. Operações Sequenciais Com máquinas de Turing qs,0 qs,1 (B, B, ➞) qs,f (1, 1, ➞) (B, 1, ➞) (1, 1, ←) S: qz,0 qz,1 (B, B, ➞) qz,f (1, 1, ➞) (B, B, ←) Z: qz,2 (1, B, ←) (B, B, ➞) (B, 1, ←) qz,3 Zero Sucessor z(n) = 0 s(n) = n + 1
  • 42. Operações Sequenciais Com máquinas de Turing qs,1 (B, B, ➞) qs,f (1, 1, ➞) (B, 1, ➞) (1, 1, ←) qz,0 qz,1 (B, B, ➞) qz,f = qs,0 (1, 1, ➞) (B, B, ←) qz,2 (1, B, ←) (B, B, ➞) (B, 1, ←) qz,3 s( z(n) ) = 0 + 1 = 1
  • 43. Operações Sequenciais Com máquinas de Turing qs,1 (B, B, ➞) qs,f (1, 1, ➞) (B, 1, ➞) (1, 1, ←) qz,0 qz,1 (B, B, ➞) qz,f = qs,0 (1, 1, ➞) (B, B, ←) qz,2 (1, B, ←) (B, B, ➞) (B, 1, ←) qz,3 s( z(n) ) = 0 + 1 = 1
  • 45. Operações Sequenciais Macros * f(n) = s( z(n) ) Z * S * • Nem todas as computações irão iniciar com a cabeça de leitura na posição 0 da fita; F:
  • 46. Operações Sequenciais Macros * f(n) = s( z(n) ) Z * S * • Nem todas as computações irão iniciar com a cabeça de leitura na posição 0 da fita; F:
  • 47. Operações Sequenciais Macros * f(n) = s( z(n) ) Z * S * • Nem todas as computações irão iniciar com a cabeça de leitura na posição 0 da fita; • Toda computação deve iniciar lendo o símbolo branco (B) da fita. F:
  • 48. Macros Notação utilizada B n1 B n2 B … B nk B
  • 49. Macros Notação utilizada B n1 B n2 B … B nk B k-ésimo número na fita" (sequência de 1s)
  • 50. Macros Notação utilizada B n1 B n2 B … B nk B k-ésimo número na fita" (sequência de 1s) B 1 1 B 1 1 1 B B Exemplo: { { n1 n2
  • 51. Macros Exemplo MRk B n1 B n2 B … B nk B Move Right B n1 B n2 B … B nk B
  • 52. Macros Exemplo q0 q1 (B, B, ➞) qf (1, 1, ➞) (B, B, ➞) MR2: (1, 1, ➞) MRk B n1 B n2 B … B nk B Move Right B n1 B n2 B … B nk B
  • 53. Macros Exemplo q0 q1 (B, B, ➞) qf (1, 1, ➞) (B, B, ➞) MR2: (1, 1, ➞) MRk B n1 B n2 B … B nk B Move Right B n1 B n2 B … B nk B q0 q1 (B, B, ➞) qf (1, 1, ➞) (B, B, ➞) MRk: (1, 1, ➞) (B, B, ➞) qk-1 (1, 1, ➞) … (B, B, ➞)
  • 54. Macros MRk B n1 B n2 B … B nk B Move Right B n1 B n2 B … B nk B
  • 55. Macros MRk B n1 B n2 B … B nk B Move Right B n1 B n2 B … B nk B MLk B n1 B n2 B … B nk B Move Left B n1 B n2 B … B nk B
  • 56. Macros MRk B n1 B n2 B … B nk B Move Right B n1 B n2 B … B nk B MLk B n1 B n2 B … B nk B Move Left B n1 B n2 B … B nk B FR B B B n1 B n2 B B Find Right B B B n1 B n2 B B
  • 57. Macros MRk B n1 B n2 B … B nk B Move Right B n1 B n2 B … B nk B MLk B n1 B n2 B … B nk B Move Left B n1 B n2 B … B nk B FR B B B n1 B n2 B B Find Right B B B n1 B n2 B B FL Find Left B BB n1 B n2 B B B BB n1 B n2 B B
  • 58. Macros MRk B n1 B n2 B … B nk B Move Right B n1 B n2 B … B nk B MLk B n1 B n2 B … B nk B Move Left B n1 B n2 B … B nk B FR B B B n1 B n2 B B Find Right B B B n1 B n2 B B FL Find Left B BB n1 B n2 B B B BB n1 B n2 B B Ek Erase B B B B B … B B BB n1 B n2 B … B nk B
  • 59. Macros CPYk Copy B n1 B n2 B … B nk B B B B B … B B B B n1 B n2 B … B nk B n1 B n2 B … B nk B
  • 60. Macros CPYk Copy B n1 B n2 B … B nk B B B B B … B B B B n1 B n2 B … B nk B n1 B n2 B … B nk B CPYk, i Copy B n1 B … B nk B B nk+i… B B B … B B B B n1 B … B nk B B nk+i… B n1 B … B nk B
  • 61. Macros CPYk Copy B n1 B n2 B … B nk B B B B B … B B B B n1 B n2 B … B nk B n1 B n2 B … B nk B CPYk, i Copy B n1 B … B nk B B nk+i… B B B … B B B B n1 B … B nk B B nk+i… B n1 B … B nk B T B B B n1 B B B B Translate B BBn1 B B B B
  • 62. Macros BRN Branch on zero B n1 B n2 B … B nk B B n1 B n2 B … B nk B * BRN n = 0 n > 0 * *
  • 63. INT Interchange B n B m B B B * * E1 * T * MR1 * T * ML1 *CPY1,1 B m B n B B B Utilizando outras macros Macros
  • 64. * * MR1 * * A * ML1 * A *CPY1 Exemplo de utilização Macros • f(n) = 3n CPY1
  • 65. Exemplo de utilização Macros T * E1 * ML1 *q 0 (B, B, ➞) q 1 (1, 1, ➞) q 2 (B, B, ➞) E1 * T q 3 CPY1 * q 5 q 4 ML1A *MR1 *CPY1,1 q 8 q 7 q 6 * MULT: (1, X, ➞) (1, 1, ➞) (B, B, ➞) (B, B, ←) (X, B, ←) (B, B, ➞) (X, B, ←) (1, B, ←) (1, 1, ←) (1, 1, ←) (X, X, ➞)(1, X, ➞) (1, 1, ➞) (B, B, ➞)
  • 67. Arquitetura B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho home
  • 68. B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho Início
  • 69. INIT v Inicializa variável local B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho Início
  • 70. INIT v Inicializa variável local HOME t Move a cabeça de leitura para home quando há t variáveis alocadas. B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho Início
  • 71. INIT v Inicializa variável local HOME t Move a cabeça de leitura para home quando há t variáveis alocadas. LOAD v Carrega a variável B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho Início
  • 72. INIT v Inicializa variável local HOME t Move a cabeça de leitura para home quando há t variáveis alocadas. LOAD v Carrega a variável STOR v Armazena o valor do registrador B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho Início
  • 73. INIT v Inicializa variável local HOME t Move a cabeça de leitura para home quando há t variáveis alocadas. LOAD v Carrega a variável STOR v Armazena o valor do registrador RETURN v Limpa todas as variáveis deixando o valor de B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho Início
  • 74. INIT v Inicializa variável local HOME t Move a cabeça de leitura para home quando há t variáveis alocadas. LOAD v Carrega a variável STOR v Armazena o valor do registrador RETURN v Limpa todas as variáveis deixando o valor de CLEAR t Limpa o valor do registrador t B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho Início
  • 75. INIT v Inicializa variável local HOME t Move a cabeça de leitura para home quando há t variáveis alocadas. LOAD v Carrega a variável STOR v Armazena o valor do registrador RETURN v Limpa todas as variáveis deixando o valor de CLEAR t Limpa o valor do registrador t BRN L, t Vai para a instrução L se o valor do registrador t é 0. B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho Início
  • 76. INIT v Inicializa variável local HOME t Move a cabeça de leitura para home quando há t variáveis alocadas. LOAD v Carrega a variável STOR v Armazena o valor do registrador RETURN v Limpa todas as variáveis deixando o valor de CLEAR t Limpa o valor do registrador t BRN L, t Vai para a instrução L se o valor do registrador t é 0. GOTO L Executa a instrução L. B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho Início
  • 77. INIT v Inicializa variável local HOME t Move a cabeça de leitura para home quando há t variáveis alocadas. LOAD v Carrega a variável STOR v Armazena o valor do registrador RETURN v Limpa todas as variáveis deixando o valor de CLEAR t Limpa o valor do registrador t BRN L, t Vai para a instrução L se o valor do registrador t é 0. GOTO L Executa a instrução L. NOP “No operation” (utilizada em conjunto com a instruçõ GOTO) B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho Início
  • 78. INIT v Inicializa variável local HOME t Move a cabeça de leitura para home quando há t variáveis alocadas. LOAD v Carrega a variável STOR v Armazena o valor do registrador RETURN v Limpa todas as variáveis deixando o valor de CLEAR t Limpa o valor do registrador t BRN L, t Vai para a instrução L se o valor do registrador t é 0. GOTO L Executa a instrução L. NOP “No operation” (utilizada em conjunto com a instruçõ GOTO) INC t Incrementa o valor do registrador t. B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho Início
  • 79. INIT v Inicializa variável local HOME t Move a cabeça de leitura para home quando há t variáveis alocadas. LOAD v Carrega a variável STOR v Armazena o valor do registrador RETURN v Limpa todas as variáveis deixando o valor de CLEAR t Limpa o valor do registrador t BRN L, t Vai para a instrução L se o valor do registrador t é 0. GOTO L Executa a instrução L. NOP “No operation” (utilizada em conjunto com a instruçõ GOTO) INC t Incrementa o valor do registrador t. DEC t Decrementa o valor do registrador t. B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho Início
  • 80. INIT v Inicializa variável local HOME t Move a cabeça de leitura para home quando há t variáveis alocadas. LOAD v Carrega a variável STOR v Armazena o valor do registrador RETURN v Limpa todas as variáveis deixando o valor de CLEAR t Limpa o valor do registrador t BRN L, t Vai para a instrução L se o valor do registrador t é 0. GOTO L Executa a instrução L. NOP “No operation” (utilizada em conjunto com a instruçõ GOTO) INC t Incrementa o valor do registrador t. DEC t Decrementa o valor do registrador t. ZERO t Substitui o valor do registrador t por 0. B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho Início
  • 81. Instruções B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho home
  • 82. Instruções B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho home HOME t MR t
  • 83. Instruções B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho home INIT vi MR i - 1 ZR ML i - 1 HOME t MR t
  • 84. Instruções B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho home INIT vi MR i - 1 ZR ML i - 1 HOME t MR t STOR vi, t MR t - 2 INT ML1 INT MR1 INT MR 1 ER 1 ML t - 1 ( ) ( ) t + n - i - 1 t + n - i - 1
  • 85. Instruções B v1 B v2 B … B vk B vk+1 B vn B … B B B… B … Variáveis de entrada Variáveis locais Registradores e espaço de trabalho home INIT vi MR i - 1 ZR ML i - 1 HOME t MR t STOR vi, t MR t - 2 INT ML1 INT MR1 INT MR 1 ER 1 ML t - 1 ( ) ( ) t + n - i - 1 t + n - i - 1 LOAD vi, t ML n - i + 1 CPY 1, n - i + 1 + t MR n - i + 1
  • 86. Exemplo INIT v2 INIT v3 HOME 3 LOAD v1,1 STOR v2,1 L1 LOAD v2,1 BRN L2,1 LOAD v1,1 INC STOR v1,1 LOAD v2,1 DEC STOR v2,1 GOTO L1 L2 LOAD v1,1 INC STOR v1,1 RETURN v1 Início • f(n) = 2n + 1
  • 88. Referências • SUDKAMP, T. A. Languages and Machines: An Introduction to the Theory of Computer Science (3rd Edition). Boston, MA, USA: Addison- Wesley Longman Publishing Co., Inc., 2005. ISBN 0321322215.