1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da...

31
1 Faculdade Anhanguera de Taubaté – Ciência da Computação Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Prof. Fabiano Sabha Sabha Teoria da Teoria da Computação Computação Teoria Teoria da da Computação Computação Aula 3

Transcript of 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da...

Page 1: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

1

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

TeoriaTeoria

dada

ComputaçãoComputação

Aula 3

Page 2: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

2

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Programas, Máquinas e computações. Máquinas Universais. Funções recursivas. Computabilidade. Noção intuitiva. Modelos computacionais. Equivalência entre modelos e tese de Church. Funções não computáveis e o problema da parada. Enumerabilidade, decidibilidade. Problemas não decidíveis e semi-decidíveis.

EmentaEmenta

Page 3: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

3

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Livro Texto: SIPSER, Michael. Introdução a Teoria da Computação.

2ª ed. : Thompson Pioneira, 2007.

LEWIS, Harry R; PAPADIMITRIOU, Christos H. Elementos de Teoria da Computação. 2ª ed. Porto Alegre: Bookman, 2000.

Complementar: 1) HOPCROFT, John E; ULLMAN, Jeffrey D; MOTWANI,

Rajeev, SOUZA. Introdução à Teoria de Autômatos, Linguagens e Computação. 2ª ed. Rio de Janeiro: Editora Campus, 2003.

Bibliografia BásicaBibliografia Básica

Page 4: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

4

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

ProgramasProgramas, ,

MáquinasMáquinas

e e

ComputaçõesComputações

Page 5: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

5

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

ProgramasProgramasUm conjunto de operações e testes compostos de acordo com uma estrutura de controle

MáquinasMáquinasInterpreta Programas e Possui uma interpretação para cada operação ou teste que constituem o programa.

ComputaçõesComputaçõesHistórico do funcionamento da máquina para o programa e um dado valor inicial.

Programas, Máquinas e ComputaçõesProgramas, Máquinas e Computações

Page 6: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

6

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Um programa pode ser descrito como um conjunto estruturado de instruçõesinstruções que capacitam uma máquina aplicar sucessivamente certas operações operações básicasbásicas e testestestes em uma parte determinada dos dados iniciais fornecidos, até que esses dados tenham se transformado numa forma desejável.

ProgramasProgramas

Page 7: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

7

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

O tipo de estrutura de controle (de operações e testes) associada determina uma classificação de programas como:

Monolítico:Monolítico: É baseada em desvios condicionais e incondicionais, não possuindo mecanismos explícitos de interação, sub-divisão ou recursão.

Iterativo: Iterativo: Possui mecanismos de controle de iterações de trechos de programas. Não permite desvios incondicionais.

Recursivo: Recursivo: Possui mecanismos de estruturação em sub-rotinas recursivas. Recursão È uma forma indutiva de definir programas. Também não permite desvios incondicionais.

Classificação dos ProgramasClassificação dos Programas

Page 8: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

8

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Seqüencial: Seqüencial: A execução da operação ou teste subseqüente somente pode ser realizada após o encerramento da execução da operação ou teste anterior.

Não-Determinista:Não-Determinista: Uma das operações (ou testes) compostas é escolhida para ser executada.

Concorrente:Concorrente: As operações ou testes compostos podem ser executados em qualquer ordem, inclusive simultaneamente. Ou seja, a ordem de execução é irrelevante.

Composição de InstruçõesComposição de Instruções

Page 9: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

9

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Não é necessário saber qual a natureza precisa das operações e dos testes que constituem as instruções. Serão conhecidas pelos seus nomes.

Identificadores de Operações: F, G, H, ... Identificadores de Testes: T1, T2, T3, ...

Um teste é uma operação de um tipo especial a qual produz somente um dos dois possíveis valores verdade, ou seja, verdadeiro ou falso, denotados por: v e f, respectivamente.

Uma operação que não faz coisa alguma, denominada: operação vazia, denotada pelo símbolo

Operações e TestesOperações e Testes

Page 10: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

10

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Rótulo, instrução rotulada:Um rótulo ou etiqueta é uma cadeia finita de

caracteres constituída de letras ou dígitos. Uma Instrução rotulada assume as formas:

Operação: Operação: r1: faça F vá_para r2 ou r1: faça vá para r2.

Teste: Teste: r1: se T então vá_para r2 senão vá_para r3.

Programa Monolítico - DefiniçõesPrograma Monolítico - Definições

Page 11: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

11

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Programa monolítico: Um Programa Monolítico é um par P(I, r)

I: Conjunto Finito de Instruções Rotuladasr: Rótulo inicial que distingue a instrução inicial em I

A estrutura oferecida pelos programas monolíticos é típica das linguagens de máquinas e de programas montadores (assembly), entretanto isto se reflete de diversas maneiras em linguagens de alto nível.

Programa Monolítico - DefiniçõesPrograma Monolítico - Definições

Page 12: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

12

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

É estruturado com desvios condicionais e incondicionais, somente. Não emprega mecanismos auxiliares como iteração, sub-divisão ou recursão, de modo que toda a lógica do programa esta contida em um único bloco: um monólito.

Em sua representação, não existem duas instruções diferentes com um mesmo rótulo e um rótulo referenciado por alguma instrução o qual não é associado a qualquer instrução rotulada é dito um Rótulo Final.

Programa Monolítico - ConceitoPrograma Monolítico - Conceito

Page 13: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

13

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

1: faça F vá_para 22: se T1 então vá_para 1 senão vá_para 33: faça G vá_para 44: se T2 então vá_para 5 senão vá_para 1

Programa Monolítico - ExemploPrograma Monolítico - Exemplo

Page 14: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

14

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

É uma das formas mais comuns de especificar programas monolíticos;

É um diagrama geométrico construído a partir de componentes elementares denominados

No caso da operação vazia , o retângulo correspondente à operação pode ser omitido, resultando simplesmente em uma seta.

FluxogramasFluxogramas

Page 15: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

15

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Fluxogramas podem ser reescritos na forma de texto, usando instruções rotuladas.

Uma instrução rotulada pode ser:a) Operação: Operação: Indica a operação a ser executada seguida

de um desvio incondicional para a instrução subseqüente.b) Teste: Teste: Determina um desvio condicional, ou seja, que

depende da avaliação de um teste.c) Parada: Parada: é especificada usando um desvio incondicional

para um rótulo sem instrução correspondente.d) Assume-se que a computação sempre inicia no rótulo.

FluxogramasFluxogramas

Page 16: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

16

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Exercício 1:Exercício 1: Usando apenas os símbolos de fluxograma anterior, representar um programa monolítico para calcular a soma dos 100 primeiros números ímpares.

Exercício 2: Exercício 2: Escrever o programa do exercício 1 como uma seqüência de instruções rotuladas.

Exercício 3: Exercício 3: Fazer o fluxograma do Programa Monolítico, dado como exemplo.

ExercíciosExercícios

Page 17: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

17

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Um Programa Iterativo P é indutivamente definido por: a) A operação vazia constitui um programa iterativo; b) Cada identificador de operação constitui um programa

iterativo; c) Composição Seqüencial. V;W d) Composição Condicional (se T então V senão W) e) Composição Enquanto. enquanto T faça (V) - testa T e

executa V, repetidamente, enquanto o resultado do teste for o valor verdadeiro.

f) Composição Até. até T faça (V) - testa T e executa V, repetidamente, enquanto o resultado do teste for o valor falso.

Programa Iterativo - DefiniçõesPrograma Iterativo - Definições

Page 18: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

18

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Substituem desvios incondicionais por estruturas cíclicas, permitindo um melhor controle e manutenção de programas.

A noção de programa iterativo deu origem às técnicas de programação estruturada, inspirando toda uma geração de linguagens como Pascal.

São baseados em três mecanismos de composição de instruções, encontrados em diversas linguagens: Algol 68, Pascal, Ada, Fortran 90, etc... Seqüencial Condicional Enquanto (Até)

Programa Iterativo - CaracterísticasPrograma Iterativo - Características

Page 19: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

19

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

se T1então enquanto T2

faça (até T3 faça (V; W))senão ()

O uso de identação é interessante para facilitar o entendimento.

Parênteses podem ser empregados para mudar uma interpretação: (enquanto T faça V); W enquanto T faça (V; W)

Programa Iterativo - ExemploPrograma Iterativo - Exemplo

Page 20: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

20

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Um Programa Recursivo P tem a seguinte forma: P é E0 onde R1 def E1, R2 def E2, ..., Rn def Em

onde: k {1, 2, ..., n} E0 Expressão Inicial a qual é uma expressão de sub-rotinas; Ek Expressão que Define Rk, a expressão que define a

subrotina identificada por Rk.

A operação vazia constitui um programa recursivo que não faz coisa alguma.

Programa RecursivoPrograma Recursivo

Page 21: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

21

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

P é R ; S, onde:R def F; (se T então R senão G; S)S def (se T então senão F; R)

Exemplo de Programa RecursivoExemplo de Programa Recursivo

Page 22: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

22

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

As máquinas interpretam os programas suprindo todos os recursos necessários para realizar a computação que eles representam.

Cada identificador de operação ou teste interpretado pela máquina deve ser associado a uma transformação na estrutura da memória e a uma função verdade respectivamente.

Nem todo identificador de operação ou teste é definido em uma máquina.

Para cada identificador de operação ou teste definido em uma máquina existe somente uma função associada.

Adicionalmente a máquina deve descrever o armazenamento ou recuperação da informação na estrutura da memória.

MáquinasMáquinas

Page 23: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

23

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Uma máquina é uma 7-upla: M = ( V, X, Y, X, Y, F, T ), onde:

V V – Conjunto de Valores de Memória

X X – Conjunto de Valores de Entrada Y Y – Conjunto de Valores de Saída

XX – Função de Entrada, tal que X: X V YY – Função de Saída, tal que Y: V Y

FF – Conjunto de Interpretações de Operações. Para cada F existe uma única F: V V

TT – Conjunto de Interpretações de Testes. Para cada T existe uma única T: V {verdadeiro, falso}

Máquinas - DefiniçãoMáquinas - Definição

Page 24: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

24

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Seja uma máquina com dois registradores, a e b, que assumem valores em N, com duas operações e um teste:

Subtrair 1 de a, se a > 0. Adicionar 1 em b. Teste se a é zero.

Adicionalmente Valores de Entrada são armazenados em: a (zerando b);b retorna o valor de saida.

Máquinas – Exemplo – Maq. de 2 RegistrosMáquinas – Exemplo – Maq. de 2 Registros

Page 25: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

25

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

dois_reg = ( N2, N, N, armazena_a, retorna_b, {subtrai_a, adiciona_b}, {a_zero} ), onde:

V = N2 = Conjunto de Valores de Memória. X = N = Conjunto de Valores de Entrada Y = N = Conjunto dos Valores de Saída armazena_a: N N2, tal que, para todo n N, armazena_a(n) = (n, 0) retorna_b: N2 N tal que, para todo n N, retorna_b(n, m) = m subtrai_a: N2 N2 tal que, para todo (n, m) N2,

subtrai_a(n, m) = (n-1, m), se n 0, subtrai_a(n, m) = (0, m), se n = 0.

adiciona_b: N2 N2 tal que, para todo (n, m) N2, adiciona_b(n, m) = (n, m+1)

a_zero: N2 {verdadeiro, falso}, tal que, para todo (n, m) N2, a_zero(n, m) = verdadeiro, se n = 0, a_zero(n, m) = falso, se n 0,

Máquinas – Exemplo – ImplementaçãoMáquinas – Exemplo – Implementação

Page 26: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

26

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Diz-se que P é um programa para a máquina M se cada operação e teste em P corresponder a uma interpretação em M.

Programa para uma máquinaPrograma para uma máquina

Page 27: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

27

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

ComputaçãoComputaçãoUma computação de um programa monolítico em uma máquina é um históricohistórico das instruções executadas e o correspondente valor de memória.

O históricohistórico é representado na forma de uma cadeia de pares

onde: cada parcada par reflete um estado da máquina para o programa, ou

seja, a instrução a ser executada e o valor corrente da memória; a cadeia a cadeia reflete uma seqüência de estados possíveis a partir

do estado inicial, ou seja, instrução (rótulo) inicial e valor de memória considerado.

Computações e Funções ComputadasComputações e Funções Computadas

Page 28: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

28

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Programa Monolítico mon_b¬a 1: se a_zero então vá_para 9 senão vá_para 2 2: faça subtrai_a vá_para 3 3: faça adiciona_b vá_para 1 Para o valor inicial de memória (3, 0), a computação finita é:(1, (3, 0)) instrução inicial e valor de entrada armazenado(2, (3, 0)) em 1, como a a 00, desviou para 2(3, (2, 0)) em 2, subtraiu do registrador a e desviou para 3(1, (2, 1)) em 3, adicionou no registrador b e desviou para 1(2, (2, 1)) em 1, como a a 00, desviou para 2(3, (1, 1)) em 2, subtraiu do registrador a e desviou para 3(1, (1, 2)) em 3, adicionou no registrador b e desviou para 1(2, (1, 2)) em 1, como a a 00, desviou para 2(3, (0, 2)) em 2, subtraiu do registrador a e desviou para 3(1, (0, 3)) em 3, adicionou no registrador b e desviou para 1(9, (0, 3)) em 1, como a = 0a = 0, desviou para 9

Computações e Funções Computadas - ExemploComputações e Funções Computadas - Exemplo

Page 29: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

29

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

A Computação é dita FinitaFinita ou InfinitaInfinita, se a cadeia que adefine é finita ou infinita, respectivamente.

Para um dado valor inicial de memória, a correspondente cadeia de computação é única, ou seja, a computação é determinística;

Um teste ou uma referência a uma sub-rotina não alteram o valor corrente da memória;

Em uma computação finita, a expressão ocorre no último par da cadeia e não ocorre em qualquer outro par;

Em uma computação infinita, expressão alguma da cadeia é .

Computações e Funções ComputadasComputações e Funções Computadas

Page 30: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

30

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Funções ComputadasFunções ComputadasA computação de um programa deve ser associada a uma entrada e a uma saída. Adicionalmente, espera-se que a resposta (saída) seja gerada em um tempo finito. Essas noções induzem a definição de função computada.

Computações e Funções ComputadasComputações e Funções Computadas

Page 31: 1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3.

31

Faculdade Anhanguera de Taubaté – Ciência da ComputaçãoFaculdade Anhanguera de Taubaté – Ciência da Computação

Prof. Fabiano Prof. Fabiano SabhaSabha

Teoria da Teoria da ComputaçãoComputação

Forte de Programas:Forte de Programas: Um par de programas pertence à relação se as correspondentes funções computadas coincidem para qualquer máquina;

Programas em uma Máquina:Programas em uma Máquina: Um par de programas pertence à relação se as correspondentes funções computadas coincidem para uma dada máquina;

Máquinas:Máquinas: Um par de máquina pertence à relação se as máquinas podem se simular mutuamente. A simulação de uma máquina por outra pode ser feita usando programas diferentes.

Equivalência de programas e máquinasEquivalência de programas e máquinas