Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Teoria da Computação BCC 244
1 Teoria da Computação BCC 244
2
Bibliografia: www.decom.ufop.br/lucilia/ftc
Sipser, Teoria da Computação Newton Vieira, Teoria da Computação Site do curso:
3
Fundamentos de Teoria da Computação
3 Fundamentos de Teoria da Computação O curso explora alguns modelos teóricos de computação, que são diretamente relacionados aos computadores que usamos atualmente, abordando os seguintes tópicos: Teoria de Autômatos Gramáticas Algoritmos e computabilidade
4
Algoritmos Dada a especificação de um problema tal como: 4
somar dois números Determinar se um string é um palindromo O Problema do Caixeiro Viajante Que autômato é capaz de resolver o problema? Que gramáticas podem descrever o problema? Existem problemas que não são solúveis por meio de computador, ou que não podem ser formalmente descritos? Existem problemas indecidíveis que sejam importantes? Ou que não possam ser resolvidos em um período de tempo razoável, por nenhum computador?
5
QUESTION TO ASK: How can it be that the set of Java programs is a language? After all, a language is supposed to be composed of strings not programs? 5 Linguagens Formais Linguagens formais servem como a ligação entre essas três perspectivas. Definição preliminar: Uma linguagem formal é um conjunto de strings. Podemos pensar no Portugues como o conjunto de todas as palavras dessa linguagem {a, aba, abaco, abalo, abandono, … } Mais precisamente, o conjunto de todas as sentenças válidas da linguagem. Java é o conjunto de todos os programas Java.
6
6 Linguagens Formais Teoria de Autômatos: Computadores são definidos de modo a agir puramente sobre strings e, portanto, definir uma determinda linguagem. Gramáticas: Gramáticas especificam linguagens, por meio de regras que derivam um subconjunto do conjunto de todos os strings de um dado alfabeto. (mais natural ) Algoritmos: Instâncias de um problema são descritas como strings. (menos natural ) QUESTION TO ASK: How can it be that the set of Java programs is a language? After all, a language is supposed to be composed of strings not programs?
7
7 Visão Geral Autômatos, Gramáticas e Algoritmos são explorados simultaneamente ao longo de 3 modelos computacionais, progressivamente mais complicados: Autômato Finito Autômato de Pilha (Pushdown Stack) Máquinas de Turing
8
Hierarquia de Chomsky 8 All REC = computed by TM
Context Free = computed by PDA Regular = computed by FA Finite languages
9
9 Teoria vs. Prática A parte prática do curso consiste em aplicar a teoria no desenvolvimento de um web browser:
10
Outras Aplicações Práticas
Universal Modeling Language 1010 Outras Aplicações Práticas Reconhecimento de padrão, deteção de intrusão, engenharia de software (UML), programação GUI (event-listeners), segurança em redes (protocolos), verificação formal (descoberta de erros em chips), processamento de linguagem natural (sistema de reservas Amtrak), computação genômica (sequenciamento de DNA), implementação de compiladores, definição de documentos (XML), etc etc.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.