Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teoricos da computacao
1. Curso: Ciência da Computação
Turma: 5º Semestre
Aspectos Teóricos da Computação
Aula 1
Apresentação da Disciplina e Metodologia de
Trabalho
2. Apresentação do Professor
André Luís Bordignon
Mestre em Engenharia da Computação - UNICAMP
Formado em Matemática Aplicada e Computacional -
UNICAMP
Black Belt - Motorola
Atuo em uma Organização Não Governamental chamada
CDI – Comitê para Democratização da Informática.
Dúvidas?
Curiosidades?
…
E-mail: andre_bordignon@yahoo.com.br
Aspectos Teóricos da Computação 2
3. O que são Aspectos
Teóricos da
Computação?
O que vocês esperam dessa disciplina?
Qual é a sua expectativa em relação a essa
disciplina?
Se reúnam em grupos e discutam essas
questões em 5 minutos
Aspectos Teóricos da Computação 3
4. Ementa
Elementos fundamentais das linguagens formais (cadeias, alfabetos e
linguagens).
Gramáticas.
Hierarquia de Chomsky.
Linguagem Regular;
Linguagem Livre de Contexto;
Linguagens Recursivas;
Linguagens Recursivamente Enumeráveis;
Linguagens Sensíveis a Contexto;
Gramáticas Regulares;
Gramáticas Livres de Contexto;
Gramática Dependente de Contexto e Gramática Irrestrita;
Autômatos finitos determinísticos e não determinísticos.
Autômatos de pilha.
Aspectos Teóricos da Computação 4
5. Objetivos
Geral
Ao término desta disciplina o aluno deverá ter conhecimento das classes das Linguagens compreendidas pela
Hierarquia de Chomsky. O aluno deverá conhecer as características estruturais de tais linguagens, bem
como das gramáticas que as geram. O estudo das Linguagens Regulares deve desdobrar-se no estudo de
expressões regulares, as quais apresentam ampla aplicação. A apresentação dos tópicos referentes a
Linguagens Livres de Contexto fornece subsídios para o estudo da compilação de linguagens de
programação de alto nível. Esta disciplina também tem por objetivo comparar as linguagens regulares e livres
de contexto com as linguagens recursivas, mais abstratas e situadas no topo da hierarquia daquilo que é
computável. Serão aduzidos os dispositivos reconhecedores das Linguagens Regulares e das Linguagens
Livres de Contexto, a saber: Autômatos Finitos e Autômatos de Pilha, respectivamente.
Específico
Explicar como classificar uma linguagem segundo a Hierarquia de Chomsky;
Aduzir o conceito de gramáticas regulares, livres de contexto, dependentes de contexto e irrestritas;
Discutir o conceito de autômatos finitos e mostrar que são reconhecedores de linguagens regulares;
Identificar uma linguagem regular representada através de expressões regulares e projetar autômatos finitos
determinísticos e não-determinísticos que realizem o reconhecimento das mesmas.
Identificar qual linguagem regular é reconhecida por um determinado autômato finito;
Mostrar que um autômato de pilha é um dispositivo reconhecedor de uma linguagem gerada por uma
gramática livre de contexto;
Explicar pelo menos um algoritmo de análise sintática (“top-down” ou “botton-up”);
Aspectos Teóricos da Computação 5
6. Conteúdo Programático
Módulo 01 - Conceitos Fundamentais : Conjuntos e Relações Módulo 07. Linguagens Livres de Contexto - 1
Conjuntos Definição de Linguagem Livre de Contexto;
Relações e Funções; Definição Formal de Gramática Livre de Contexto;
Gramática Livre de Contexto: dispositivo gerador de uma Linguagem Livre de Contexto;
Fecho de uma Relação e Grafos Bidirecionais
Forma Normal de Chomsky e Forma Normal de Greibach;
Conjuntos finitos e infinitos;
Árvores de Derivação;
Gramáticas Ambíguas.
Módulo 02 - Conceitos Fundamentais: Linguagens
Definições de Alfabeto, Cadeias, Linguagens Módulo 08 - Linguagens Livres de Contexto - 2
Gramática: dispositivo gerador de uma Linguagem. Definição Formal de Autômato de Pilha. Exemplos que mostram que o autômato de pilha é
Derivação de cadeias e árvores de derivação. um dispositivo reconhecedor/aceitador de linguagens livres de contexto;
Apresentação dos Teoremas que garantem a existência de autômatos com pilha;
Autômato com Pilha x Número de Estados. Estados x Poder Computacional dos
Módulo 03 - Linguagens Regulares - 1 Autômatos com Pilha;
Breve apresentação da Hierarquia de Chomsky O Lema do Bombeamento para Linguagens Livres de Contexto;
Definição de Linguagens Regulares;
Gramática Regular: dispositivo gerador de uma Linguagem Regular; Módulo 09 - Linguagens Livres de Contexto - 3
Algoritmos de Reconhecimento; (Algoritmo de Cocke-Younger-Kasami;,Algoritmo de
Expressões Regulares;
Early)
Algoritmos para Gramáticas Livres de Contexto. (“top-down” ou “botton-up”)
Módulo 04 - Linguagens Regulares - 2 Módulo 10 – Linguagens Livres de Contexto - 4
Autômatos Finitos Não-determinísticos: definição Formal Observações sobre a relação entre Determinismo e Análise Sintática;
Autômatos Finitos Determinísticos: definição Formal; Problemas decidíveis concernentes às linguagens livres de contexto.
Obtenção de Autômatos Finitos a partir da Gramática Regular.
Obtenção da Gramática Regular a partir de Autômatos Finitos. Módulo 11 – Linguagens que não são Livres de Contexto
Linguagem Dependente de Contexto;
Gramática Dependente de Contexto e Gramática Irrestrita;
Módulo 05. Linguagens Regulares – 3
Linguagens Recursivas x Linguagens Recursivamente Enumeráveis x Linguagens
Equivalência entre autômatos finitos não-determinísticos e determinísticos; Dependentes de Contexto;
O lema do Bombeamento para Linguagens Regulares;
Minimização de Estados. Módulo 12 – Conclusão da Disciplina
Comparação entre as Classes de Linguagens na Hierarquia de Chomsky;
Módulo 06. Linguagens Regulares – 4 O poder de expressão das Gramáticas e poder computacional dos ;
O estudo das Linguagens Regulares e Livres de Contexto como fundamento para a
Aspectos Algorítmicos dos Autômatos Finitos;
especificação e implementação de Linguagens de Programação (Compiladores);
Máquinas de Mealy e Moore. Comparação entre a natureza dos algoritmos existentes para problemas dependentes de
Problemas decidíveis concernentes às linguagens regulares; contexto e daqueles advindos do estudo das linguagens regulares e livres de contexto.
Aspectos Teóricos da Computação 6
7. Sistema de Avaliação
1ª Avaliação
Prova: 7,00.
Exercícios em sala de aula: 3,00.
2ª Avaliação – Peso 6
Prova escrita oficial: 7,00.
Exercícios em sala de aula: 3,00
Nota = (Nota 1ºBim * 0,5) + (Nota 2ºBim*0,5) >=5 ==>
Aprovado.
Aspectos Teóricos da Computação 7
8. Avaliações em Sala de Aula
Não decoreba.
Trabalhosas.
Requerem leitura do livro texto.
Exercícios em sala:
A cada duas aulas nos 15 minutos finais haverá um
exercício para a nota.
Aspectos Teóricos da Computação 8
9. O Que eu Espero do Estudante
Vocês estão aqui para aprender. Não são obrigados a saber.
Portanto façam todas as perguntas que quiserem.
Estudem. A oportunidade da graduação normalmente é única.
Aproveitem e tirem suas dúvidas.
Assistam e participem da aula.
Que quiser bater papo não tem problema, mas por favor deixem a
sala de aula.
Aparentemente o seu comportamento não conta na nota mas não é
verdade. Conta e muito !!!
A educação é uma via de duas mãos: Vocês aprendem comigo e eu
aprendo com vocês. Portanto questionem. Nem sempre o professor
está certo. A tarefa da educação é muito legal pois podemos
aprender juntos.
Aspectos Teóricos da Computação 9
10. Bibliografia
Bibliografia básica
• LEWIS, Harry R.; PAPADIMITRIOUS, Christos H. Elementos de Teoria da
Computação. 2. ed. Porto Alegre: Bookman, 2004.
• RAMOS, Marcus Vinicius Midena. NETO, João José. VEGA, Italo Santiago.
Linguagens Formais. Porto Alegre: Bookman, 2009.
• SIPSER, Michael Introdução à Teoria da Computação. São Paulo: Thomson
Pioneira, 2007.
Bibliografia Complementar
• JFLAP Version 7.0 Released August 28, 2009. Disponível em http://www.jflap.org.
Acesso em: 1/07/2010.
• MENEZES, Paulo Blauth. Linguagens formais e autômatos. Porto Alegre: Bookman,
2008.
• MOTWANI, Rajeev, ULLMAN, Jeffrey D. , HOPCROFT, John E. Introdução à Teoria
dos Autômatos, Linguagens e Computação. Rio de Janeiro: Campus, 2002.
• MOZGOVOY, M. Algorithms, Languages, Automata, and Compilers - A Practical
Approach. Massachussets: Jones and Barlett Publishers, 2009.
• ROSA, J. L. G. Linguagens Formais e Autômatos. LTC, 2010.
Aspectos Teóricos da Computação 10
12. Meu Objetivo
Possibilitar oportunidades para o aprendizado da
turma
Fazer de tudo para que todo mundo aprenda a
disciplina
Eu quero e tenho certeza que vocês podem e vão
ser muito bons alunos e alunas
E depois disso serão muito bons profissionais. No
caso de vocês muitos já estão sendo...
Aspectos Teóricos da Computação 12
13. Diretivas
Não se restringir somente ao conteúdo
apresentado em aula
Ter consciência crítica
– Questionar, questionar, questionar não só o
professor mas o conteúdo...
Aspectos Teóricos da Computação 13
14. Próxima Aula
Grupos para as atividades em sala de aula
No máximo 3 alunos por grupo.
Aspectos Teóricos da Computação
15. Contato com o Professor
Durante as aulas.
Após a aula.
Através do e-mail
andre_bordignon@yahoo.com.br
Dúvidas, comentários,
sugestões???
Aspectos Teóricos da Computação 15