2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

Documentos relacionados
SCC-5832 Teoria da Computação

SCC Introdução à Teoria da Computação

SCC Teoria da Computação e Linguagens Formais

Universidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax:

PLANO DE ENSINO. CURSO: Bacharelado em Sistemas de Informação MODALIDADE: PRESENCIAL ( X ) OBRIGATÓRIA ( ) OPTATIVA DEPARTAMENTO: DEINFO

UNIVERSIDADE ESTADUAL DO SUDOESTE DA BAHIA - UESB DEPARTAMENTO DE CIÊNCIAS EXATAS - DCE PLANO DE CURSO DISCIPLINA

TEORIA: 60 LABORATÓRIO: 0

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

UNIDADE UNIVERSITÁRIA:

Teoria da Computação (BBC244)

Linguagens Formais e Autômatos. Tiago Alves de Oliveira

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018

Linguagens Formais e Autômatos Apresentação da Disciplina

formais e autómatos Linguagens g recursivas e recursivamente enumeráveis Gramáticas não-restringidas

Linguagens Formais e Autômatos

Linguagens recursivamente enumeráveis

6. QUADRIMESTRE IDEAL 7. NÍVEL Graduação 8. Nº. MÁXIMO DE ALUNOS POR TURMA TEORIA: 60 LABORATÓRIO: 30

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo.

6. QUADRIMESTRE IDEAL 7. NÍVEL Graduação 8. Nº. MÁXIMO DE ALUNOS POR TURMA

Universidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax:

ECO026 TEORIA DA COMPUTAÇÃO. Prof: Rafael Santos Site:

Linguaguens recursivamente enumeráveis e recursivas

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Teoria da Computação. Aula 01

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Linguaguens recursivamente enumeráveis

Turma A - Segundas e Quartas das 8h30min - 10h10min Turma B - Segundas e Quartas das 10h30min - 12h10min

Modelos de Computação

INE5317 Linguagens Formais e Compiladores. Ricardo Azambuja Silveira INE-CTC-UFSC URL:

Linguagens Formais e Autômatos P. Blauth Menezes

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

I.2 Introdução a Teoria da Computação

Linguagens Formais e Problemas de Decisão

Árvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1

Computabilidade e Complexidade (ENG10014)

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

Universidade Federal de Alfenas

INE5317 Linguagens Formais e Compiladores AULA 6: Propriedades das Linguagens Regulares

Terceira Lista de Exercícios 2004/2...

Modelos de Computação Folha de trabalho n. 10

Teoria da Computação Aula 02 Introdução

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação

UFCG IQuanta DSC. Cheyenne R. G. Isidro Bernardo Lula Júnior

Universidade Federal de Alfenas

Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

Decidibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente

Linguagens Formais e Autômatos

Autómatos determísticos de k-pilhas

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2)

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

INCLUSÃO DO ALGORITMO DE TRANSFORMAÇÃO DE UM AUTÔMATO FINITO EM EXPRESSÃO REGULAR NO AMBIENTE EDITOR DE AUTÔMATOS FINITOS

Segunda Lista de Exercícios 2004/2...

FOLHA DE PROVA. Descreva e ilustre, com um exemplo, o algoritmo de minimização de um autômato.

Problemas Computáveis

PLANO DE APRENDIZAGEM

Teoria da Computação. Computabilidade e complexidade computacional

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Máquinas de Turing - Computabilidade

Linguagem (formal) de alfabeto Σ

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1

Draft-v0.1. Máquinas de Turing Máquinas de Turing

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

MT como calculadoras de funções parciais

Capítulo A máquina de Turing (TM) padrão Combinações de máquinas de Turing A Tese de Turing. ADC/TC/Cap.9/ /LEI/DEIFCTUC 375

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular TEORIA DA COMPUTAÇÃO Ano Lectivo 2017/2018

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Compiladores. Prof. Bruno Moreno Aula 8 02/05/2011

Revisões de Conjuntos

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Teoria da Computação

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador

Linguagens Formais e Autômatos P. Blauth Menezes

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular COMPILADORES Ano Lectivo 2017/2018

Autómatos de pilha e Gramáticas independentes de contexto

Universidade Federal de Alfenas

Capítulo Métodos para transformar gramáticas ái Duas formas Normais (Chomsky e Greibach) ADC/TC/Cap.6/ /LEI/DEIFCTUC 268

Problemas decidíveis para LICs

Universidade Federal de Alfenas

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

13.2. Sistemas de Post Sistemas de rescrita Cálculo Lambda. ADC/TC/Cap.13/ /LEI/DEIFCTUC 497

Problemas decidíveis para LICs

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

CT-200 Fundamentos de Linguagens Formais e Automata - Aula 01 - In...

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

Exercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) )

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

LINGUAGENS FORMAIS E AUTÔMATOS

LLC's: Lema do Bombeamento e Propriedades de Fechamento

Construção de Compiladores Aula 16 - Análise Sintática

Transcrição:

Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA MC3106 - LINGUAGENS FORMAIS E AUTÔMATA 2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória 4. CURSO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO 6. QUADRIMESTRE IDEAL 8 8. Nº. MÁXIMO DE ALUNOS POR TURMA 5. CRÉDITOS T P I: 3-1-4 7. NÍVEL Graduação 9. OBJETIVOS TEORIA: 60 LABORATÓRIO: 30 A disciplina possui os seguintes objetivos: Apresentar os conceitos fundamentais da teoria da computação. Familiarizar o aluno com modelos teóricos de um computador e o tratamento formal de tais modelos. Apresentar ao aluno as diferentes classes de linguagens. Preparar o aluno para o posterior estudo de técnicas de construção de Compiladores e processamento de Línguagem Natural. Refinar a habilidade do aluno para tratar com conceitos formais abstratos. 10. COMPETÊNCIAS A disciplina deverá permitir que o aluno ser capaz de: Identificar a linguagem reconhecida por um autômato ou gramática. Definir e classificar linguagens de acordo com as classes conhecidas. Provar a veracidade de proposições simples envolvendo linguagens. Mostrar a equivalência ou diferença entre certos modelos de máquinas. 11. PROGRAMA RESUMIDO (EMENTA) Conceitos básicos. Linguagens regulares: autômatos determinísticos e não-determinísticos, expressões regulares. Linguagens livres de contexto: gramática, autômatos a pilha. Linguagens recursivamente enumeráveis: máquinas de Turing determinísticas e não-determinísticas. Indecidibilidade: o problema da parada. Complexidade: definição das classes P e NP. 12. PROGRAMA 1. Conceitos Básicos: alfabeto, símbolo, palavra, palavra vazia, linguagem, linguagem vazia, comprimento de uma palavra, concatenação de palavras, potências de uma palavra, operações com

linguagens (união, intersecção, concatenação, potências e a estrela de Kleen) 2. Linguagens regulares: 2.1 Autômato finito determinístico e a definição de linguagens regulares 2.2 Operações regulares: complementação, união, intersecção, concatenação e estrela. 2.3 Autômato finito não-determinístico 2.4 Equivalência entre autômatos finitos determinístico e não-detrminísticos 2.5 Expressões regulares 2.6 Equivalência entre expressões regulares e autômatos finitos não-determinísticos 2.6.1 Autômatos finitos generalizados 2.7 Minimização e equivalência de autômatos finitos determinísticos 2.8 Lema do bombeamento 3. Linguagens livres de contexto 3.1 Gramática livre de contexto e a definição de linguagens livres de contexto 3.2 Árvore de derivação e ambigüidade 3.3 Gramáticas regulares 3.4 Autômatos a pilha 3.5 Equivalência entre autômatos a pilha e gramáticas 3.6 A Forma Normal de Chomsky 3.7 Lema do bombeamento para linguagens livres de contexto 4. Linguagens recursivamente enumeráveis 4.1 Máquinas de Turing e a definição de linguagens recursivamente enumeráveis 4.2 Variantes de Máquinas de Turing 4.2.1 Máquinas de Turing com múltiplas fitas 4.2.2 Máquinas de Turing não-determinísticas 4.2.3 Máquinas de Turing enumeradoras 4.3 Linguagens recursivamente enumeráveis versus linguagens decidíveis 4.3.1 Relação com a noção de algoritmo 4.3.2 Relação entre linguagens e problemas gnéricos de decisão 5. Indecidibilidade 5.1 Problemas decidíveis 5.2 Problemas indecidíveis 5.2.1 O problema da Parada 6. Complexidade 6.1 Complexidade de tempo de uma Máquina de Turing decisora determinística 6.2 Complexidade de tempo de uma Máquina de Turing decisora não-determinística 6.3 Classes de complexidade 6.4 O problema P NP 13. MÉTODOS UTILIZADOS Os conteúdos serão apresentados via aula expositiva, opcionalmente com uso de recursos audiovisuais (slides). Além disso, uma ou duas aulas são utilizadas para resolver exercícios e sanar dúvidas. 14. ATIVIDADES DISCENTES Assistir às aulas teóricas expositivas, fazer exercícios e trabalhos extra-classe (em grupo ou individualmente), estudar pela bibliografia indicada, implementar algoritmos, fazer as atividades de avaliação propostas. 15. CARGA HORÁRIA AULAS TEÓRICAS: 36 AULAS PRÁTICAS: 12 TOTAL: 48 RECOMENDADO PARA DEDICAÇÃO INDIVIDUAL: 48

16. CRITÉRIOS DE AVALIAÇÃO DE APRENDIZAGEM Média ponderada de duas provas, listas de exercícios e/ou exercícios de implementação. 17. NORMAS DE RECUPERAÇÃO (CRITÉRIOS DE APROVAÇÃO E ÉPOCAS DE REALIZAÇÃO DAS PROVAS OU TRABALHOS) As notas serão dadas por conceito, conforme estabelecido pelas normas internas da UFABC. Alunos que não atingiram um nível de aprendizado adequado, e sem reprovação por presença, poderão fazer uma prova substitutiva para mais uma oportunidade de avaliação. A prova substitutiva será realizada após as provas normais, no final do trimestre. 18. BIBLIOGRAFIA RECOMENDADA BIBLIOGRAFIA BÁSICA: 1. SIPSER, M. Introdução à Teoria da Computação. 2ª Edição, Thomson, 2007. (ISBN: 8522104999, ISBN-13: 978-85-221-0499-4) 2. HOPCROFT, J. E., ULLMAN, D. J. e MOTWANI, R. Introdução à Teoria de Autômatos, Linguagens e Computação, 2ª edição, Rio de Janeiro: Editora Campus, 2003. (ISBN: 8535210725, ISBN-13: 978-85-352-1072-9) 3. LEWIS, H. R.; PAPADIMITRIOU, C. H. Elementos de Teoria da Computação. 2ª edição, Bookman Companhia Ed., 2004. (ISBN: 8573075341, ISBN-13: 978-85-7307-534-2) BIBLIOGRAFIA COMPLEMENTAR: 1. LINZ, P. An Introduction to Formal Language and Automata, 4th edition, Jones & Bartlett Pub, 2006. (ISBN: 0763737984, ISBN-13: 978-0-7637-3798-6) 2. YAN, S. Y. An Introduction to Formal Languages and Machine Computation, World Scientific Publishing Company, 1996. (ISBN: 9810234228, ISBN-13: 978-981-02-3422-5) 3. RICH, E. A. Automata, Computability and Complexity: Theory and Applications, Prentice Hall; 1st edition, 2007. (ISBN: 0132288060, ISBN-13: 978-0-13-228806-4) 4. MENEZES P. B. Linguagens Formais e Autômatos, UFRGS: Editora Sagra Luzzatto, 6ª. Edição, 2011. (ISBN: 8577807657, ISBN-13: 978-85-7780-765-9) 5. KHOUSSAINOV, B.; NERODE, A. Automata Theory and its Applications, Birkhäuser Boston; 1st edition, 2001. (ISBN: 0817642072, ISBN-13: 978-0-8176-4207-5) 6. ANDERSON, J. Automata Theory with Modern Applications, Cambridge University Press, 2006. (ISBN: 0521848873, ISBN-13: 978-0-521-84887-9) 7. SHALLIT, J. A Second Course in Formal Languages and Automata Theory, Cambridge University Press, 1st edition, 2008. (ISBN: 0521865727, ISBN-13: 978-0-521-86572-2) 8. SALOMAA, Arto. Computation and automata. Cambridge: Cambridge University Press, 1985. xiii, 284 p. (Encyclopedia of mathematics and its applications, v. 25). Includes index. ISBN 9780521302456. 19. PLANO SUGERIDO PARA AS AULAS (em semanas letivas) Eis a seguir uma sugestão para o plano de aulas: Aula 01/02: Conceitos Básicos: alfabeto, símbolo, palavra, palavra vazia, linguagem, linguagem vazia, comprimento de uma palavra, concatenação de palavras, potências de uma palavra, operações com linguagens (união, intersecção, concatenação, potências e a estrela). Exemplos de

todos estes conceitos. Exemplo informal de autômato e aplicações. Definição formal de autômato finito determinístico (AFD) e de seu modelo de computação. Definições: linguagem reconhecida por um autômato, linguagem regular. Exemplos: achando a linguagem de um autômato; construindo um autômato que reconhece uma dada linguagem. Aula 03/04/05: Operações regulares. Demonstração de que as linguagens regulares são fechadas pela união e dar exemplos. Introduzir autômato finito não-determinístico (AFN). Exemplo de computação de um AFN. Definição formal de AFN e de seu modelo de computação. O modelo de computação de um AFN. Exemplos: achando a linguagem de um AFN. Demonstrar a equivalência entre AFN e AFD e dar exemplos. Demonstrar, usando AFNs, que as linguagens regulares são fechadas pelas operações regulares. Exemplos e aplicações: construindo um AFN que reconhece uma dada linguagem. Aula 06/07: Definição de expressões regulares. Linguagem descrita por uma expressão regular. Dar exemplos. Mostrar que as expressões regulares descrevem linguagens regulares. Introduzir autômato finito não determinístico generalizado. Remoção de estados em autômatos finitos generalizados. Demonstração de que toda linguagem regular pode ser descrita por uma expressão regular: construir o algoritmo recursivo para este fim. Aula 08/09: Definir relação de equivalência. Definir a relação de equivalência (relativa à aceitação) no conjunto de estados de um AFD. Definir o autômato quociente. Dar exemplos. Mostrar que o AFD quociente reconhece a mesma linguagem que o AFD original. Mostrar que não existe AFD com menos estados que o AFD quociente que reconheça a mesma linguagem. Algoritmo de minimização de autômatos. Algoritmo para determinar se dois autômatos reconhecem a mesma linguagem. Como obter (durante a execução do alg.) o certificado de que dois AFDs reconhecem linguagens diferentes. Aula 10: Demonstração do Lema do bombeamento. Aplicações do Lema do Bombeamento para mostrar que várias linguagens não são regulares (dar diversos exemplos). Aula 11/12: Explicar o que é uma Gramática Livre de Contexto: definir símbolo terminal, variável, regra de produção, variável inicial, derivação de uma palavra, árvore de derivação. Dar exemplos. Definir gramática formalmente. Definir a linguagem de uma gramática. Dar exemplos. Definir linguagem livre de contexto. Mostrar que toda linguagem regular pode ser descrita por uma gramática livre de contexto. Dar exemplos. Mostrar que as linguagens livres de contexto são fechadas pela operação de união. Definir o que é uma gramática ambígua e o que é uma linguagem inerentemente ambígua. Dar exemplos. Aula 13/14: Definir autômato a pilha e explicar seu funcionamento. Exemplos: construindo autômatos a pilha para reconhecerem certas linguagens livres de contexto. Demonstrar que uma linguagem é livre de contexto se e somente se existe um autômato a pilha que a reconhece. Aula 15/16: Definição da Forma Normal de Chomsky (FNC). Algoritmo para transformar uma gramática na FNC. Exemplos de transformação. Propriedades da derivação de uma palavra por uma gramática na FNC. Aplicação: Algoritmo de programação dinâmica para decidir se uma palavra pode ser gerada por uma gramática na FNC. Aula 17: Demonstração do Lema do Bombeamento para linguagens livres de contexto. Exemplos de aplicação para mostrar que existem linguagens que não são livres de contexto. Aula 18/19: Máquinas de Turing (MT); Linguagens recursivamente enumeráveis. Exemplo de computação de MT, e exemplo do diagrama de uma MT. Vários exemplos de linguagens recursivamente enumeráveis e da construção de MT que as reconhecem. Variantes de MT: multiplas fitas, não-determinísticas, enumeradoras. Máquinas de Turing Decisoras (MTD) e linguagens decidíveis. A formalização do conceito de algoritmo. Problemas de decisão codificados sob a forma de linguagens.

Aula 20/21/22: Problemas decidíveis envolvendo linguagens: decidir se um AFD aceita uma palavra, decidir se um AFN aceita uma palavra, decidir se a linguagem de um AFD é vazia, decidir se as linguagens de dois AFDs são iguais, decidir se uma gramática descreve a linguagem vazia. Mostrar que todas as linguagens livres de contexto são decidíveis. O problema da parada. Aula 23/24: Notação O. Medindo o tempo consumido por uma MT determinística e nãodeterminística. Classes de complexidade de tempo. As classes P e NP. O problema clássico P vs NP na computação. 20. PROFESSOR(A) RESPONSÁVEL Daniel Morgato Martin