Computacao Numérica

89
Fernando Simeone Computação Numérica 1 1 1 1 1

Transcript of Computacao Numérica

Page 1: Computacao Numérica

Fernando Simeone

Computação Numérica

1 1 1 1 1… …

Page 2: Computacao Numérica

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

Page 3: Computacao Numérica

Cálculo de Funções1

Page 4: Computacao Numérica

Máquina de TuringReconhecimento de Linguagens

MT = (Q, Σ, Γ, δ, q0)

q0 qs

qn

q1

q2

B a c c b B B B B B B… …Entrada:

Page 5: Computacao Numérica

Máquina de TuringReconhecimento 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:

Page 6: Computacao Numérica

Máquina de TuringCálculo de Funções

MT = (Q, Σ, Γ, δ, q0, qf)

q0 qfFim da

computação

B a c c b B B B

Entrada:

M

Page 7: Computacao Numérica

Máquina de TuringCálculo de Funções

MT = (Q, Σ, Γ, δ, q0, qf)

q0 qfFim da

computação

B a c c b B B B

Entrada:

B a a B B B B B

Resultado:

M

Page 8: Computacao Numérica

Máquina de TuringCálculo de Funções (Turing computáveis)

MT = (Q, Σ, Γ, δ, q0, qf)

q0 qfFim 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, ➞)

Page 9: Computacao Numérica

Máquina de TuringCá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, ➞)

Page 10: Computacao Numérica

Máquina de TuringCá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, ➞];

Page 11: Computacao Numérica

Máquina de TuringCá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;

Page 12: Computacao Numérica

Máquina de TuringCá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);

Page 13: Computacao Numérica

Máquina de TuringCá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 q0BvB se f(u) = v;

Page 14: Computacao Numérica

Máquina de TuringCá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 q0BvB se f(u) = v;

• A MT não pára se f(u) for indefinido.

Page 15: Computacao Numérica

Máquina de TuringLendo argumentos e escrevendo resultado

Page 16: Computacao Numérica

Máquina de TuringLendo argumentos e escrevendo resultado

B a b B B B B B B B B B b a B B

• f(ab) = baEntrada Resultado

Page 17: Computacao Numérica

Máquina de TuringLendo argumentos e escrevendo resultado

B a b B B B B B B B B B b a B B

• f(ab) = baEntrada Resultado

B a b B c c B b a c B B a b B B

• f(ab, cc, bac) = abEntrada Resultado

Page 18: Computacao Numérica

Máquina de TuringLendo argumentos e escrevendo resultado

B a b B B B B B B B B B b a B B

• f(ab) = baEntrada Resultado

B a b B c c B b a c B B a b B B

• f(ab, cc, bac) = abEntrada Resultado

B a b B B b a c B B B B B B B B

• f(ab, λ, bac) = λEntrada Resultado

Page 19: Computacao Numérica

Cálculo de FunçõesExemplo: 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 BEntrada Resultado

B a b b a B B

Page 20: Computacao Numérica

Computação Numérica2

Page 21: Computacao Numérica

Funções Numéricas

Page 22: Computacao Numérica

Funções Numéricas• f: N × N × N × … × N ⟶ N

Page 23: Computacao Numérica

Funções Numéricas• f: N × N × N × … × N ⟶ N

• Exemplos

Page 24: Computacao Numérica

Funções Numéricas• f: N × N × N × … × N ⟶ N

• Exemplos

• sq(n) = n2

Page 25: Computacao Numérica

Funções Numéricas• f: N × N × N × … × N ⟶ N

• Exemplos

• sq(n) = n2

• db(n) = 2n

Page 26: Computacao Numérica

Funções Numéricas• f: N × N × N × … × N ⟶ N

• Exemplos

• sq(n) = n2

• db(n) = 2n

• add(x, y) = x + y

Page 27: Computacao Numérica

RepresentaçãoComo representar números na fita

Page 28: Computacao Numérica

Representação

• n = 1n+1

Como representar números na fita

Page 29: Computacao Numérica

Representação

• n = 1n+1

• 0 = 1

Como representar números na fita

Page 30: Computacao Numérica

Representação

• n = 1n+1

• 0 = 1

• 1 = 11

Como representar números na fita

Page 31: Computacao Numérica

Representação

• n = 1n+1

• 0 = 1

• 1 = 11

• 2 = 111

Como representar números na fita

Page 32: Computacao Numérica

RepresentaçãoComo representar números na fita

Page 33: Computacao Numérica

RepresentaçãoComo representar números na fita

B 1 1 1 B B B B B B B B 1 1 B B

• f(2) = 1Entrada Resultado

Page 34: Computacao Numérica

RepresentaçãoComo representar números na fita

B 1 1 1 B B B B B B B B 1 1 B B

• f(2) = 1Entrada Resultado

B 1 1 1 1 B 1 B B B B B 1 1 1 B

• f(3, 0) = 2Entrada Resultado

Page 35: Computacao Numérica

Cálculo Funções NuméricasSucessor

q0 q1

(B, B, ➞)qf

(1, 1, ➞)

(B, 1, ➞)

(1, 1, ←)

B 1 1 1 B B BEntrada Resultado

B 1 1 1 1 B B

S:

• s(n) = n + 1

Page 36: Computacao Numérica

Cálculo Funções NuméricasZero

q0 q1

(B, B, ➞)qf

(1, 1, ➞)

(B, B, ←)

B 1 1 1 B B BEntrada Resultado

B 1 B B B B B

Z:

• z(n) = 0

q2

(1, B, ←)

(B, B, ➞) (B, 1, ←)q3

Page 37: Computacao Numérica

Cálculo Funções NuméricasAdiçã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

Page 38: Computacao Numérica

Cálculo Funções NuméricasDecremento

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, ←)

Page 39: Computacao Numérica

Operações Sequenciais3

Page 40: Computacao Numérica

Operações SequenciaisCom 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

Page 41: Computacao Numérica

Operações SequenciaisCom 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

Page 42: Computacao Numérica

Operações SequenciaisCom 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

Page 43: Computacao Numérica

Operações SequenciaisCom 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

Page 44: Computacao Numérica

Operações SequenciaisMacros

*

f(n) = s( z(n) )

Z * S *F:

Page 45: Computacao Numérica

Operações SequenciaisMacros

*

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:

Page 46: Computacao Numérica

Operações SequenciaisMacros

*

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:

Page 47: Computacao Numérica

Operações SequenciaisMacros

*

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:

Page 48: Computacao Numérica

MacrosNotação utilizada

B n1 B n2 B … B nk B

Page 49: Computacao Numérica

MacrosNotação utilizada

B n1 B n2 B … B nk B

k-ésimo número na fita"(sequência de 1s)

Page 50: Computacao Numérica

MacrosNotaçã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

Page 51: Computacao Numérica

MacrosExemplo

MRk B n1 B n2 B … B nk BMove Right

B n1 B n2 B … B nk B

Page 52: Computacao Numérica

MacrosExemplo

q0 q1

(B, B, ➞)qf

(1, 1, ➞)

(B, B, ➞)MR2:

(1, 1, ➞)

MRk B n1 B n2 B … B nk BMove Right

B n1 B n2 B … B nk B

Page 53: Computacao Numérica

MacrosExemplo

q0 q1

(B, B, ➞)qf

(1, 1, ➞)

(B, B, ➞)MR2:

(1, 1, ➞)

MRk B n1 B n2 B … B nk BMove 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, ➞)

Page 54: Computacao Numérica

MacrosMRk B n1 B n2 B … B nk BMove Right

B n1 B n2 B … B nk B

Page 55: Computacao Numérica

MacrosMRk B n1 B n2 B … B nk BMove Right

B n1 B n2 B … B nk B

MLk B n1 B n2 B … B nk BMove Left

B n1 B n2 B … B nk B

Page 56: Computacao Numérica

MacrosMRk B n1 B n2 B … B nk BMove Right

B n1 B n2 B … B nk B

MLk B n1 B n2 B … B nk BMove Left

B n1 B n2 B … B nk B

FR B B B n1 B n2 B BFind Right

B B B n1 B n2 B B

Page 57: Computacao Numérica

MacrosMRk B n1 B n2 B … B nk BMove Right

B n1 B n2 B … B nk B

MLk B n1 B n2 B … B nk BMove Left

B n1 B n2 B … B nk B

FR B B B n1 B n2 B BFind Right

B B B n1 B n2 B B

FLFind Left

B BB n1 B n2 B B B BB n1 B n2 B B

Page 58: Computacao Numérica

MacrosMRk B n1 B n2 B … B nk BMove Right

B n1 B n2 B … B nk B

MLk B n1 B n2 B … B nk BMove Left

B n1 B n2 B … B nk B

FR B B B n1 B n2 B BFind Right

B B B n1 B n2 B B

FLFind Left

B BB n1 B n2 B B B BB n1 B n2 B B

EkErase

B B B B B … B B BB n1 B n2 B … B nk B

Page 59: Computacao Numérica

MacrosCPYkCopy

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

Page 60: Computacao Numérica

MacrosCPYkCopy

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, iCopy

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

Page 61: Computacao Numérica

MacrosCPYkCopy

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, iCopy

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 BTranslate

B BBn1 B B B B

Page 62: Computacao Numérica

MacrosBRNBranch on zero

B n1 B n2 B … B nk B B n1 B n2 B … B nk B

* BRNn = 0

n > 0

*

*

Page 63: Computacao Numérica

INTInterchange

B n B m B B B

* * E1 * T * MR1 * T * ML1 *CPY1,1

B m B n B B B

Utilizando outras macrosMacros

Page 64: Computacao Numérica

* * MR1 * * A * ML1 * A *CPY1

Exemplo de utilizaçãoMacros

• f(n) = 3n

CPY1

Page 65: Computacao Numérica

Exemplo de utilizaçãoMacros

T

*

E1 * ML1 *q0

(B, B, ➞)q

1

(1, 1, ➞)q

2

(B, B, ➞)

E1

*

T

q3

CPY1

*

q5

q4

ML1A *MR1 *CPY1,1

q8

q7

q6

*

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, ➞)

Page 66: Computacao Numérica

Criando uma Linguagem de Programação

4

Page 67: Computacao Numérica

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

Page 68: Computacao Numérica

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

Page 69: Computacao Numérica

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

Page 70: Computacao Numérica

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

Page 71: Computacao Numérica

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

Page 72: Computacao Numérica

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

Page 73: Computacao Numérica

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

Page 74: Computacao Numérica

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

Page 75: Computacao Numérica

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

Page 76: Computacao Numérica

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

Page 77: Computacao Numérica

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

Page 78: Computacao Numérica

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

Page 79: Computacao Numérica

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

Page 80: Computacao Numérica

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

Page 81: Computacao Numérica

InstruçõesB 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

Page 82: Computacao Numérica

InstruçõesB 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

Page 83: Computacao Numérica

InstruçõesB 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

Page 84: Computacao Numérica

InstruçõesB 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 tSTOR 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

Page 85: Computacao Numérica

InstruçõesB 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 tSTOR 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

Page 86: Computacao Numérica

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

Page 87: Computacao Numérica

Considerações Finais5

Page 88: Computacao Numérica

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.

Page 89: Computacao Numérica

Obrigado Dúvidas ??