TeoriadaComputacao-Aula13
-
Upload
alexandre-garcez -
Category
Documents
-
view
3 -
download
0
description
Transcript of TeoriadaComputacao-Aula13
Teoria da ComputaçãoMÁQUINA NORMA
Fabrício Dias
UNIPÊ – Centro Universitário de João PessoaCurso de Ciências da Computação
Agenda
Máquina Norma Definições
Máquina Norma como Máquina Universal
3
Máquina Norma
A Máquina Universal Norma (Number TheOretic Register MAchine) proposta por Richard Bird em 1976
4
Máquina Norma A Máquina Universal Norma (Number
TheOretic Register MAchine) possui como memória um conjunto
potencialmente infinito de registradores naturais;
três instruções podem atuar sobre cada registrador: adição do valor um; subtração do valor um; teste (se o valor armazenado é zero).
5
Máquina Norma
N∞ denota o conjunto de todas as tuplas com infinitos (mas contáveis) componentes sobre o conjunto dos números naturais.
Para evitar subscritos, as componentes das uplas são denotadas por letras maiúsculas como A, B, X, Y as quais denotam os registradores na Máquina Norma.
6
Máquina Norma Definição: A Máquina Norma é uma 7-
upla (suponha que K seja um registrador, K { A, B, …, X, Y }):
Norma = (N∞, X, Y, ent, sai, { adK,subK }, { zeroK })
a) Cada elemento do conjunto de valores de memória N∞ denota uma configuração de seus infinitos registradores, os quais são denotados por: A, B, …, X, Y
7
Máquina Norma Definição:
Norma = (N∞, X, Y, ent, sai, { adK,subK }, { zeroK })
b) A função de entrada:
ent: N → N∞ é tal que carrega no registrador denotado por X o valor de entrada, inicializando todos os demais registradores com zero;
8
Máquina Norma Definição:
Norma = (N∞, X, Y, ent, sai, { adK,subK }, { zeroK })
c) A função de saída:
sai: N∞ → N é tal que retorna o valor corrente do registrador denotado por Y.
9
Máquina Norma Definição:
Norma = (N∞, X, Y, ent, sai, { adK,subK }, { zeroK })
d) O conjunto de interpretações de operações é uma família de operações 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)
10
Máquina Norma Definição:
Norma = (N∞, X, Y, ent, sai, { adK,subK }, { zeroK })
subK: N∞ → N∞
Subtrai um da componente correspondente ao registrador K, se o seu valor for maior que zero (caso contrário, mantém o valor zero), deixando as demais com seus valores inalterados.
(K:=K-1)
11
Máquina Norma Definição:
Norma = (N∞, X, Y, ent, sai, { adK,subK }, { zeroK })
e) O conjunto de interpretações de testes é uma família de testes indexada pelos registradores na qual, para cada registrador K, tem-se que: zeroK: N∞ → { verdadeiro, falso } resulta em
verdadeiro, se a componente correspondente ao registrador K for zero e em falso, caso contrário.
(K=0)
12
Máquina Norma como
Máquina Universal
13
Máquina Norma
Características: Operações e Testes. Definição de operações
e testes mais complexos como adição, subtração, multiplicação e divisão de dois valores e tratamento de valores diversos como os números primos;
14
Máquina Norma
Características: Valores Numéricos. Armazenamento de
tratamento de valores numéricos de diversos tipos como inteiros (negativos e não-negativos) e racionais;
15
Máquina Norma
Características: Dados Estruturados. Armazenamento de
tratamento de dados estruturados como em arranjos (vetores uni e multidimensionais), pilhas, filas, etc.
16
Máquina Norma
Características: Endereçamento Indireto e Recursão. Desvio
para uma instrução determinada pelo conteúdo de um registrador;
17
Máquina Norma
Características: Cadeia de Caracteres. Definição e
manipulação de cadeias de caracteres. Tipo não-predefinido numa Máquina Norma; Tratamento da definição e da manipulação de
cadeias de caracteres será realizado através de outra Máquina Universal Máquina de Turing
Concluindo
Máquina Norma é uma máquina que: Possui uma memória potencialmente infinita,
compostas por 3 instruções; É uma 7- upla do tipo: Norma = (N∞, X, Y,
ent, sai, { adK,subK }, { zeroK }); Possui operações e testes complexos, como
adição, subtração, multiplicação e divisão de dois valores e tratamento de valores diversos como os números primos.
Valores numéricos, negativos e não-negativos; Dados estruturados (pilha, fila..); Endereçamento indireto e recursão (desvio para
uma instrução); Cadeia de caracteres (pré-definidas).
Dúvidas?????