Linguagens Formais e Autômatos Contextualização Prof.ª Aracele Garcia de Oliveira Fassbinder IFSULDEMINAS Campus Muzambinho Muzambinho, Fevereiro de 2012
Sobre esta disciplina O que é uma linguagem formal? O que é sintaxe? O que é semântica? Como definir uma linguagem? O que é um autômato?...
Programa da Disciplina Gramáticas. Linguagens regulares, livres de contexto, e sensíveis ao contexto. Tipos de reconhecedores. Operações com linguagens. Propriedades das linguagens. Autômatos de estados finitos determinístico e não determinístico. Autômatos de pilha. Máquina de Turing. Hierarquia de Chomsky. Funções Recursivas. Tese de Church. Problemas indecidíveis. Teorema da imcompletude de Godel. Classes de Problemas P, NP, NP-Completo e NP-Difícil. Métodos de redução de problemas.
Contexto da Disciplina no Curso Algoritmos Estruturas de Dados Lógica Matemática Linguagens Formais Teoria da Computação Compiladores Inteligência Artificial
Bibliografia Livro Texto: Paulo Blauth Menezes. Linguagens Formais e Autômatos, Ed. Sagra Luzatto, 2000. João Luís Garcia Rosa. Linguagens Formais e Autômatos. Rio de Janeiro: LTC, 2010. Lewis, H; Papadimitriou, C. Elementos de Teoria da Computação, Bookman, 2000. J. Hopcroft, Rajeev Motwani and Jeffrey D. Ullman, Introduction do Automata Theory, Languages and Computation, Addison-Wesley, 3rd ed. 2006. Hopcroft et al. Introdução à Teoria de Autômatos, Linguagens e Computação. Campus, 2003. www.tecmf.inf.puc-rio.br, Apostila do Prof. José Lucas Rangel.
Avaliação Descrição Geral 3 (três) provas totalizando: 8 pts. N atividades totalizando: 2 pts. Descrição Detalhada 3 (três) provas (P1, P2, P3). P1 vale: 3,0 pts P2 vale: 2,5 pts P3 vale: 2,5 pts Demais atividades (cada uma valendo 2,0 pontos) Atividades ou trabalhos em sala ou extra-sala. Listas de exercícios. Seminários. Comportamento Conversa, participação, desenvolvimento de atividades adicionais, entrosamento, dedicação, comprometimento, pontualidade na entrega das atividades.
Aulas Um conjunto de assuntos abordados em sala pelo professor por meio de AULAS TEÓRICAS; Aulas de tirar dúvidas em sala de aula; Avaliações durante o semestre Seminário realizado pelos alunos apresentando aplicações dos assuntos estudados a problemas reais. Algumas aulas destinadas a realização de exercícios em laboratório (simuladores)
Objetivos da disciplina Formativos Projetar gramáticas para especificar linguagens Projetar autômatos para reconhecer linguagens Classificar linguagens formais em função dos seus reconhecedores/gramáticas Entender o papel do não-determinismo na computação. Estudar uma maneira precisa e formal de descrever sequências de símbolos pertencentes à um determinado conjunto. Informativos História da Computação Limitações do processo computacional Hierarquia de Chomsky Complexidade
Conscientização: De que o conhecimento profundo dos assuntos teóricos que constituem os fundamentos conceituais e científicos da computação pode agregar valor tanto à qualidade do profissional de informática como à dos produtos por ele desenvolvidos,
História Na década de 1950, Chomsky, investigando abstrações para uso em linguística, plantou os alicerces teóricos das gramáticas gerativas, que mais tarde vieram a manifestar sua grande utilidade prática nessa e em diversas outras aplicações, com destaque à análise léxica e sintática de linguagens de programação, à modelagem do comportamento de organismos biológicos, ao projeto de hardware e ao processamento de linguagem natural.
História Seu estudo foi inicialmente direcionado para questões linguísticas associadas à representação e tratamento de linguagem natural. Hoje nota-se sua praticidade em aplicações voltadas para a compilação ou interpretação de linguagens de programação em computadores digitais.
História Noam Chomsky criou em 1956 um modelo matemático na forma de gramática, com o qual se propôs a estudar a sintaxe de línguas naturais, mas alguns anos mais tarde seu modelo revelou-se expressivo em outra área, ganhando impulso por adequar-se perfeitamente à formalização da linguagem de programação ALGOL 60.
Problemas e Linguagens Um problema particularmente útil na área de computação: Saber se uma dada string pertence ou não a uma linguagem. O que é uma string? O que é uma linguagem?
Apresentação Foco Nas LINGUAGENS: Especificação Reconhecimento E no ESTUDO DE MODELOS ABSTRATOS associados a estas linguagens.
Habilita o profissional A desenvolver argumentações matemáticas, formais e rigorosas. Proporciona uma grande familiaridade com os fundamentos e princípios da Ciência da Computação.
Aplicações Processamento de linguagens de programação textuais. Representações de processos, estruturas e protocolos e comunicação, do fluxo da lógica dos programas, de máquinas cujo funcionamento depende de sucessivas alterações do seu estado interno.
Benefícios com o seu estudo (I) Proporciona uma visão panorâmica das bases científicas da computação; Proporciona fundamentos teóricos para a área (decidibilidade, computabilidade, complexidade); Fornece um sólido lastro para o desenvolvimento de inúmeras aplicações computacionais (processamento de linguagens, reconhecimento de padrões, modelagem de sistemas).
Benefícios com o seu estudo (II) Estabelece forte elo entre a teoria e a prática; Permite que os conceitos e os resultados da teoria referente às linguagens, seus geradores, reconhecedores e analisadores possam ser aplicados de forma rígida; É um dos temas que se mostra mais eclético e menos divorciado dos demais assuntos estudados na Teoria da Computação.
Autoridades no assunto Noam Chomsky Arto Salomaa Peter Lintz Hopcroft Ullman
Motivação deste ramo de conhecimento Gira em torno da investigação do alcance das computações, da possibilidade ou não de se efetuarem determinadas computações, culminando no importante conceito de algoritmo, cuja possibilidade de existência é fortemente associada à viabilidade prática de materialização das computações realizáveis.
Outras motivações Dá uma visão que permite avaliar o alcance e as limitações dos computadores; Gozam, na prática, de uma extraordinária aplicabilidade. As ferramentas disponíveis vibializam a obtenção de soluções para muitos complexos problemas da prática.
Qual a sua importância? Guia: Que problemas podem ser efetivamente computáveis, como e com que complexidade
Exemplos práticos Máquina de Refrigerante Elevador Controlador de aparelhos eletrodomésticos: microondas, etc. Tradução entre linguagens (português-libras, etc) Semáforos
Classificação dos Problemas Não-Computáveis Computáveis Indecidíveis Decidíveis Intratáveis Tratáveis
Exemplos de Problemas Computabilidade e Decidibilidade Expressividade de Máquinas e Modelos Equivalência entre Programas Complexidade Computacional Semântica e Correção de Programas
Modelos que formalizam a noção de ser ou não computável Máquinas de Turing (Turing, 1936) Gramáticas (Chomsky, 1959) Algoritmos de Markov (Markov, 1951) -Calculus (Church, 1936) Sistemas de Post (Emil Post, 1936) Funções recursivas (Kleene, 1936)
Ferramentas JFLAP Ferramenta visual para criação de autômatos http://jflap.org/ SCTMF Sistema de Criação e Teste de Modelos Formais www.din.uem.br/~yandre/sctmf/ Language Emulator http://homepages.dcc.ufmg.br/~lfvieira/ftc.html Simulador Universal de Autômatos Finitos http://simuladoruniversal.weebly.com/
Ferramentas Nota: GAM Ginux Abstract Machine AFD/AFND Autômato finito determinístico e Autômato Finito Não Determinístico GR Gramática Regular ER Expressão Regular AP Autômato com Pilha MT Máquina de Turing Fonte: http://www.br-ie.org/pub/index.php/rbie/article/viewfile/1208/1108
Eventos Relacionados LATA - International Conference on Language and Automata Theory and Applications WTA - Workshop de Tecnologia Adaptativa ICTAC - International Colloquium on Theoretical Aspects of Computing SBMF - Brazilian Symposium on Formal Methods LSFA - Workshop on Logical and Semantic Frameworks, with Applications
Referências A teoria da computação e o profissional de informática, por João José Neto. Revista de Computação e Tecnologia da PUC-SP ReCeT, vol. I, nº 1. www.tecmf.inf.puc-rio.br/lfa O que é um autômato. http://protet.inescporto.pt/o-quee/automacao-industrial/o-que-e-um-automato.html Livros listados no slide inicial sobre referências.