1 / 20

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

Informática Teórica Engenharia da Computação. Teoria é importante para a prática. 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?

lorant
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. • Projetando uma nova linguagem de programação para uma aplicacão especializada? • O que você aprender sobre gramáticasneste curso irá bem a calhar.

  3. Teoria é importante para a prática • Lidando com busca por cadeias e casamento de padrões? • 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? • 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? • 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. • Um curso teórico podeelevar 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. • 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. • 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. • 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.

  9. Teoria da ComputaçãoNosso curso • Três áreas centrais: autômatos, computabilidade e complexidade. • Quais são as habilidades e limitações fundamentais dos computadores? • O que faz alguns problemas computacionalmente difíceis e outros fáceis? • Como separarosproblemasquepossuemsoluçãocomputacionaldaquelesquenãopossuem? COMPLEXIDADE COMPUTABILIDADE

  10. Teoria da ComputaçãoNosso curso • As teoriasdacomplexidade e computabilidaderequeremumadefiniçãoprecisa de um computador. • A teoria dos autômatosintroduzdefinições de modelosmatemáticos de computação. • Daícomeçamos o nossocursoestudandoessesmodelos.

  11. Teoria da ComputaçãoOutros modelos Sóparasabermos: • Outrosmodelos de computaçãotambémforampropostos. • -cálculo (Alonzo Church) • Funçõesrecursivas  (Kurt Godel, Jacques Herbrand) • Lógicacombinatória (Moses Schonfinkel, Haskell B. Curry)

  12. Teoria da ComputaçãoContexto do que vamos começar a estudar No cursoiremosestudarosseguintesmodelos de computação: • Autômatosfinitos • Autômatos com pilha • Máquinas de Turing • 1 e 2 possuemmémóriafinitaaopassoque 3 possuimemóriailimitada.

  13. FERRAMENTAS MATEMÁTICAS • CONJUNTOS • Operações • Produtocartesiano • Conjunto das partes • SEQUÊNCIAS E UPLAS Umasequência é umafunção de um subconjunto dos inteiros (usualmente N) em um outroconjunto. A notação an é usadaparadenotar a imagem. Chamamos an de termodasequência. Sequências e uplassãousadaspararepresentarlistasordenadas Cadeias: sequênciasfinitas

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

  15. FERRAMENTAS MATEMÁTICAS • TEOREMAS • Métodos de Prova • Provasdiretas • Provasporcontradição • Provasporcontrapositiva • Provasporinduçãomatemática

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

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

  18. FERRAMENTAS MATEMÁTICAS • CADEIAS E LINGUAGENS • Operação de concatenação de cadeias. • Essaopereçãopegaduascadeiasx e y e forma uma nova colocandoyapósx. • A cadeiaxy é chamada de concatenação de x e y. • Em geral xy é diferente de yx

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

  20. FERRAMENTAS MATEMÁTICAS • CADEIAS E LINGUAGENS • Concatenação de x com si própria: xK. • Exemplo:(ab)3 = ababab (ab)0 =  • Definiçãorecursivaparaxk: • x0 =  • xn+1 = xnx • Linguagem:conjunto de cadeias

More Related