MATA50
Linguagens Formais e Autômatos
Sobre:
MATA50 faz parte da lista de disciplinas da área de Fundamentos e Teoria da Computação que aborda os aspectos teóricos fundamentais para a Ciência da Computação. Nesta disciplina, abordamos alguns resultados fundamentais sobre representabildiade de conjuntos e funções através de sistemas formais finitários e suas conexões com a Álgebra, a Combinatória, a Lógica, entre outros. São tópicos concernentes a essa disciplina: linguagens formais, autômatos, Expressões RegularesDeseja-se com essa disciplina desenvolver as seguintes habilidades:
- Manipular as linguagens e ferramentais da Matemática Discreta
- Manipular representações formais de objetos através de procedimentos computacionais
- Representar procedimentos computacionais através de manipulação formal de símbolos
- Estabelecer conexões entre a teoria dos algoritmos e complexidade computacional e suas representações teóricas na Teoria das Linguagens Formais
Programa
Ementa
Conceito de linguagem. Hierarquia de Chomsky. Linguagens regulares e expressões regulares. Reconhecedores, geradores e propriedades das linguagens discriminadas na hierarquia de Chomsky. Ambiguidade e simplificação de gramáticas livres de contexto. Formas normais de gramáticas livres de contexto.
Objetivo
Introduzir o conceito de linguagem formal e estudar as linguagens especificadas na hierarquia de Chomsky. Mostrar a importância teórica do estudo destas linguagens. Mostrar a utilização das mesmas e dos modelos relacionados em aplicações computacionais como, por exemplo, na modelagem de problemas e construção de compiladores.
Conteúdo Programático
- Motivação do estudo das linguagens formais
- Linguagens formais e informais
- A hierarquia de Chomsky
- Uma visão geral do uso e importância das linguagens e modelos estudados na hierarquia de Chomsky
- Especificação de linguagens de programação e compiladores
- Conceito de linguagem formal.
- Alfabeto, palavra, fecho de Kleene, linguagem.
- Linguagens regulares
- 3.1. Expressões regulares
- Gramáticas regulares
- Autômato finito determinista
- Minimização de autômatos finitos
- Autômato finito determinista com saída: máquinas de Moore e Mealy
- Autômato finito não determinista
- Equivalência entre autômatos finitos, gramáticas regulares e expressões regulares
- Propriedades de linguagens regulares
- Lema do bombeamento.
- Linguagens livres de contexto
- Autômato de pilha
- Gramáticas livres de contexto (GLC)
- Derivações mais a direita e mais à esquerda
- Árvores de análise sintática
- Ambiguidade de GLC
- Simplificação de GLC
- Formas normais de Chomsky e Greibach
- Equivalência entre autômatos de pilha e GLC
- Propriedades de linguagens livres de contexto
- Lema do bombeamento
- Introdução aos problemas de decisão
- Exemplo de problemas decidíveis relativos às linguagens estudadas
- Exemplos de problemas indecidíveis relativos às linguagens estudadas
Bibliografia
1. Linguagens Formais: teoria, modelagem e implementação. Marcus Vinícius Midena Ramos, João José Neto, Ítalo Santiago Veja. Bookman, 2009. 2. Linguagens Formais e Autômatos. Paulo Blauth Menezes. Editora Sagra Luzzatto. Série Livros Didáticos – Instituto de Informática da UFRGS. 3. Introdução à Teoria de Autômatos, Linguagens e Computação. John E. Hopcroft, Jeffery D. Ullman; Rajeev Motwani. Tradução da segunda edição americana. Editora Campus. 2003 4. Elementos de Teoria da Computação. (original: Elements of the Theory of Computation. Prentice-Hall, Inc., 1998). HARRY R. Lewis, Christos H. Papadimitriou. Editora Bookman. 5. Machines, Languages and Computation. Peter J. Denning; Jack B. Dennis; Joseph E. Qualitz. Prentice-Hall. 1978. 6. Compilers: Principles, Techniques, and Tools. Alfred V., Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman. Addison Wesley; 2nd edition, 2006.