A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "1 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação TeoriadaComputação Aula 3."— Transcrição da apresentação:

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

2 2 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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. Ementa

3 3 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação Livro Texto:  SIPSER, Michael. Introdução a Teoria da Computação. 2ª ed. : Thompson Pioneira,  LEWIS, Harry R; PAPADIMITRIOU, Christos H. Elementos de Teoria da Computação. 2ª ed. Porto Alegre: Bookman, 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, Bibliografia Básica

4 4 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação Programas, MáquinaseComputações

5 5 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação  Programas Um conjunto de operações e testes compostos de acordo com uma estrutura de controle  Máquinas Interpreta Programas e Possui uma interpretação para cada operação ou teste que constituem o programa.  Computações Histórico do funcionamento da máquina para o programa e um dado valor inicial. Programas, Máquinas e Computações

6 6 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação instruções operações básicastestes  Um programa pode ser descrito como um conjunto estruturado de instruções que capacitam uma máquina aplicar sucessivamente certas operações básicas e testes em uma parte determinada dos dados iniciais fornecidos, até que esses dados tenham se transformado numa forma desejável. Programas

7 7 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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 Programas

8 8 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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ções

9 9 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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 Testes

10 10 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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ções

11 11 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação  Programa monolítico:  Um Programa Monolítico é um par P(I, r) I: Conjunto Finito de Instruções Rotuladas r: 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ções

12 12 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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 - Conceito

13 13 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação 1: faça F vá_para 2 2: se T1 então vá_para 1 senão vá_para 3 3: faça G vá_para 4 4: se T2 então vá_para 5 senão vá_para 1 Programa Monolítico - Exemplo

14 14 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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. Fluxogramas

15 15 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação  Fluxogramas podem ser reescritos na forma de texto, usando instruções rotuladas.  Uma instrução rotulada pode ser: Operação: a) Operação: Indica a operação a ser executada seguida de um desvio incondicional para a instrução subseqüente. Teste: b) Teste: Determina um desvio condicional, ou seja, que depende da avaliação de um teste. Parada: c) 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. Fluxogramas

16 16 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação  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: 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ícios

17 17 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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ções

18 18 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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ísticas

19 19 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação se T1 entã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 - Exemplo

20 20 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação  Um Programa Recursivo P tem a seguinte forma:  P é E 0 onde R 1 def E 1, R 2 def E 2,..., R n def E m onde:  k  {1, 2,..., n}  E 0 Expressão Inicial a qual é uma expressão de sub-rotinas;  E k Expressão que Define R k, a expressão que define a subrotina identificada por R k.  A operação vazia  constitui um programa recursivo que não faz coisa alguma. Programa Recursivo

21 21 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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 Recursivo

22 22 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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áquinas

23 23 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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   X   X – Função de Entrada, tal que  X : X  V   Y   Y – Função de Saída, tal que  Y : V  Y   F   F – Conjunto de Interpretações de Operações. Para cada F existe uma única  F : V  V   T   T – Conjunto de Interpretações de Testes. Para cada T existe uma única  T : V  {verdadeiro, falso} Máquinas - Definição

24 24 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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 Registros

25 25 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação  dois_reg = ( N 2, N, N, armazena_a, retorna_b, {subtrai_a, adiciona_b}, {a_zero} ), onde:  V = N 2 = Conjunto de Valores de Memória.  X = N = Conjunto de Valores de Entrada  Y = N = Conjunto dos Valores de Saída  armazena_a: N  N 2, tal que, para todo n  N, armazena_a(n) = (n, 0)  retorna_b: N 2  N tal que, para todo n  N, retorna_b(n, m) = m  subtrai_a: N 2  N 2 tal que, para todo (n, m)  N 2,  subtrai_a(n, m) = (n-1, m), se n  0,  subtrai_a(n, m) = (0, m), se n = 0.  adiciona_b: N 2  N 2 tal que, para todo (n, m)  N 2, adiciona_b(n, m) = (n, m+1)  a_zero: N2  {verdadeiro, falso}, tal que, para todo (n, m)  N 2,  a_zero(n, m) = verdadeiro, se n = 0,  a_zero(n, m) = falso, se n  0, Máquinas – Exemplo – Implementação

26 26 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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áquina

27 27 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação  Computação histórico Uma computação de um programa monolítico em uma máquina é um histórico das instruções executadas e o correspondente valor de memória. histórico O histórico é representado na forma de uma cadeia de pares onde:  cada par  cada 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 Computadas

28 28 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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 a  0 (2, (3, 0)) em 1, como a  0, 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 a  0 (2, (2, 1)) em 1, como a  0, 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 a  0 (2, (1, 2)) em 1, como a  0, 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 a = 0 (9, (0, 3)) em 1, como a = 0, desviou para 9 Computações e Funções Computadas - Exemplo

29 29 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação Finita Infinita  A Computação é dita Finita ou Infinita, se a cadeia que a define é 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 Computadas

30 30 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computação  Funções Computadas A 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 Computadas

31 31 Faculdade Anhanguera de Taubaté – Ciência da Computação Prof. Fabiano Sabha Teoria da Computaçã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áquinas


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

Apresentações semelhantes


Anúncios Google