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

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

Informática Teórica Engenharia da Computação. Teoria é importante para a prática Ela provê ferramentas conceituais que os praticantes usam em engenharia.

Apresentações semelhantes


Apresentação em tema: "Informática Teórica Engenharia da Computação. Teoria é importante para a prática Ela provê ferramentas conceituais que os praticantes usam em engenharia."— Transcrição da apresentação:

1 Informática Teórica Engenharia da Computação

2 Teoria é importante para a prática Ela provê ferramentas conceituais que os praticantes usam em engenharia da computação. Ela provê ferramentas conceituais que os praticantes usam em engenharia da computação. Projetando uma nova linguagem de programação para uma aplicacão especializada? Projetando uma nova linguagem de programação para uma aplicacão especializada? O que você aprender sobre gramáticas neste curso irá bem a calhar. O que você aprender sobre gramáticas neste curso irá bem a calhar.

3 Teoria é importante para a prática Lidando com busca por cadeias e casamento de padrões? Lidando com busca por cadeias e casamento de padrões? Lembre-se de autômatos finitos e expressões regulares. Lembre-se de autômatos finitos e expressões regulares.

4 Teoria é importante para a prática Lidando com busca por cadeias e casamento de padrões? Lidando com busca por cadeias e casamento de padrões? Lembre-se de autômatos finitos e expressões regulares. Lembre-se de autômatos finitos e expressões regulares.

5 Teoria é importante para a prática Confrontado com um problema que parece requerer mais tempo de computador do que você pode suportar? Confrontado com um problema que parece requerer mais tempo de computador do que você pode suportar? Pense no que você aprendeu sobre NP - completude. Pense no que você aprendeu sobre NP - completude.

6 Teoria é importante para a prática Os melhores projetos e aplicações de computadores são concebidos com elegância em mente. Os melhores projetos e aplicações de computadores são concebidos com elegância em mente. Um curso teórico pode elevar seu sentido estético e ajudá-lo a construir sistemas mais bonitos. Um curso teórico pode elevar seu sentido estético e ajudá-lo a construir sistemas mais bonitos.

7 Teoria é importante para a prática Finalmente, teoria é bom para você porque estudá- la expande sua mente. Finalmente, teoria é bom para você porque estudá- la expande sua mente. Conhecimento técnico específico, embora útil hoje, fica desatualizado em apenas uns poucos anos. Conhecimento técnico específico, embora útil hoje, fica desatualizado em apenas uns poucos anos. Por outro lado as habilidades de pensar, exprimir- se claramente e precisamente, para resolver problemas, e saber quando você não resolveu um problema. Por outro lado as habilidades de pensar, exprimir- se claramente e precisamente, para resolver problemas, e saber quando você não resolveu um problema. Essas habilidades têm valor duradouro. Estudar teoria treina você nessas áreas. Essas habilidades têm valor duradouro. Estudar teoria treina você nessas áreas.

8 Teoria dos Autômatos Lida com as definições e propriedades de modelos matemáticos de computação. Lida com as definições e propriedades de modelos matemáticos de computação. Um modelo, chamado autômato finito, é usado em processamento de texto, compiladores, e projeto de hardware. Um modelo, chamado autômato finito, é usado em processamento de texto, compiladores, e projeto de hardware. Um outro modelo, chamado gramática livre-do- contexto, é usado em linguagens de programação e inteligência artificial. Um outro modelo, chamado gramática livre-do- contexto, é usado em linguagens de programação e inteligência artificial.

9 Teoria da Computação Nosso curso Três áreas centrais: autômatos, computabilidade e complexidade. Três áreas centrais: autômatos, computabilidade e complexidade. Quais são as habilidades e limitações fundamentais dos computadores? Quais são as habilidades e limitações fundamentais dos computadores? O que faz alguns problemas computacionalmente difíceis e outros fáceis? O que faz alguns problemas computacionalmente difíceis e outros fáceis? Como separar os problemas que possuem solução computacional daqueles que não possuem? Como separar os problemas que possuem solução computacional daqueles que não possuem? COMPLEXIDADE COMPUTABILIDADE

10 Teoria da Computação Nosso curso As teorias da complexidade e computabilidade requerem uma definição precisa de um computador. As teorias da complexidade e computabilidade requerem uma definição precisa de um computador. A teoria dos autômatos introduz definições de modelos matemáticos de computação. A teoria dos autômatos introduz definições de modelos matemáticos de computação. Daí começamos o nosso curso estudando esses modelos. Daí começamos o nosso curso estudando esses modelos.

11 Teoria da Computação Outros modelos Só para sabermos: Outros modelos de computação também foram propostos. Outros modelos de computação também foram propostos. -cálculo (Alonzo Church) -cálculo (Alonzo Church) Funções recursivas (Kurt Godel, Jacques Herbrand) Funções recursivas (Kurt Godel, Jacques Herbrand) Lógica combinatória (Moses Schonfinkel, Haskell B. Curry) Lógica combinatória (Moses Schonfinkel, Haskell B. Curry)

12 Teoria da Computação Contexto do que vamos começar a estudar No curso iremos estudar os seguintes modelos de computação: No curso iremos estudar os seguintes modelos de computação: 1. Autômatos finitos 2. Autômatos com pilha 3. Máquinas de Turing 1 e 2 possuem mémória finita ao passo que 3 possui memória ilimitada. 1 e 2 possuem mémória finita ao passo que 3 possui memória ilimitada.

13 FERRAMENTAS MATEMÁTICAS CONJUNTOS CONJUNTOS Operações Operações Produto cartesiano Produto cartesiano Conjunto das partes Conjunto das partes SEQUÊNCIAS E UPLAS SEQUÊNCIAS E UPLAS Sequências e uplas são usadas para representar listas ordenadas Uma sequência é uma função de um subconjunto dos inteiros (usualmente N) em um outro conjunto. A notação a n é usada para denotar a imagem. Chamamos a n de termo da sequência. Cadeias: sequências finitas

14 FERRAMENTAS MATEMÁTICAS FUNÇÕES E RELAÇÕES FUNÇÕES E RELAÇÕES Domínio, contra-domínio e imagem Domínio, contra-domínio e imagem Argumentos e aridade Argumentos e aridade Função n-ária, unária, binária, etc. Função n-ária, unária, binária, etc. Predicado ou propriedade Predicado ou propriedade Relação n-ária, binária, etc. Relação n-ária, binária, etc. Propriedades de uma relação Propriedades de uma relação Relações de equivalência Relações de equivalência GRAFOS GRAFOS

15 FERRAMENTAS MATEMÁTICAS TEOREMAS TEOREMAS Métodos de Prova Métodos de Prova Provas diretas Provas diretas Provas por contradição Provas por contradição Provas por contrapositiva Provas por contrapositiva Provas por indução matemática Provas por indução matemática

16 FERRAMENTAS MATEMÁTICAS CADEIAS E LINGUAGENS CADEIAS E LINGUAGENS Alfabeto Alfabeto Conjunto finito não vazio de símbolos. Conjunto finito não vazio de símbolos. Notação: ou Notação: ou Cadeias sobre um alfabeto Cadeias sobre um alfabeto É uma sequência finita de símbolos daquele alfabeto. É uma sequência finita de símbolos daquele alfabeto. * é o conjunto de todas as cadeias sobre o alfabeto * é o conjunto de todas as cadeias sobre o alfabeto

17 FERRAMENTAS MATEMÁTICAS CADEIAS E LINGUAGENS CADEIAS E LINGUAGENS Tamanho de uma cadeia w: |w|. Tamanho de uma cadeia w: |w|. Cadeia vazia (de tamanho zero): Cadeia vazia (de tamanho zero): Reverso de w: w R. Reverso de w: w R.

18 FERRAMENTAS MATEMÁTICAS CADEIAS E LINGUAGENS CADEIAS E LINGUAGENS Operação de concatenação de cadeias. Operação de concatenação de cadeias. Essa opereção pega duas cadeias x e y e forma uma nova colocando y após x. Essa opereção pega duas cadeias x e y e forma uma nova colocando y após x. A cadeia xy é chamada de concatenação de x e y. A cadeia xy é chamada de concatenação de x e y. Em geral xy é diferente de yx Em geral xy é diferente de yx

19 FERRAMENTAS MATEMÁTICAS CADEIAS E LINGUAGENS CADEIAS E LINGUAGENS Concatenação de cadeias: algumas propriedades Concatenação de cadeias: algumas propriedades Associativa: (xy)z = x(yz) Associativa: (xy)z = x(yz) A cadeia é a identidade: x = x = x A cadeia é a identidade: x = x = x |xy| = |x| + |y| |xy| = |x| + |y|

20 FERRAMENTAS MATEMÁTICAS CADEIAS E LINGUAGENS CADEIAS E LINGUAGENS Concatenação de x com si própria: x K. Concatenação de x com si própria: x K. Exemplo: (ab) 3 = ababab Exemplo: (ab) 3 = ababab (ab) 0 = (ab) 0 = Definição recursiva para x k : Definição recursiva para x k : x 0 = x 0 = x n+1 = x n x x n+1 = x n x Linguagem: conjunto de cadeias Linguagem: conjunto de cadeias


Carregar ppt "Informática Teórica Engenharia da Computação. Teoria é importante para a prática Ela provê ferramentas conceituais que os praticantes usam em engenharia."

Apresentações semelhantes


Anúncios Google