Linguagens Formais e Autômatos Apresentação do Plano de Ensino
Oct 01, 2018
Linguagens Formais e Autômatos
Apresentação do Plano de Ensino
Linguagens Formais e Autômatos
� LFA� Código - CMP4145� Turma – A01� Engenharia da’Computação e Ciência da
Computação� Horário:
� Segunda, Terça e Quinta. � 9:00 – 10:30
Comunicação
� Utilizaremos e-mail� Enviar e-mail:
� [email protected]� Assunto: aluno LFA
� Todo e-mail enviado será respondido, a não obtenção de resposta significa o não recebimento do e-mail.
Plano de Ensino
� Ementa� Objetivos Gerais� Objetivos Específicos� Conteúdo Programático� Metodologia� Avaliação
Plano de Ensino
� Atividade Externa à Disciplina� Bibliografia Básica� Bibliografia Complementar� Cronograma
� Disponível no SOL
Ementa
� Alfabetos, palavras, linguagens e gramáticas.� Linguagens regulares e autômatos finitos. � Linguagens livres de contexto e autômatos
com pilhas. � Linguagens sensíveis ao contexto. � Linguagens com sentido de frase. � Máquinas de Turing como reconhecedores
de linguagens.
Objetivos Gerais
� Dominar os conceitos de linguagens formais� Dominar os conceitos de máquinas de
estados e autômatos finitos� Dominar os conceitos de gramáticas
Objetivos Específicos
� Construir autômatos finitos� Entender e elaborar gramáticas� Reconhecer linguagens.
Conteúdo Programático
� Introdução e Conceitos Básicos� Conjuntos e relações;� Provas formais;� Alfabetos, cadeia de caracteres, linguagens e
gramáticas.
Conteúdo Programático
� Linguagens Regulares� Autômato Finito Determinístico;� Autômato Finito Não Determinístico;� Conversão de autômatos� Expressão regular� Gramática regular� Propriedades das linguagens regulares� Conversão expressão regular – autômato finito
determinístico
Conteúdo Programático
� Linguagem Livre de Contexto� Gramática livre de contexto� Árvore de derivação� Simplificação da gramática� Autômato de Pilha
� Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto� Máquina de Turing
Metodologia
� Aulas expositivas;� Formação de grupos para definição,
discussão e solução de problemas;� Estudo dirigido- resolução de exercícios em
classe.
Avaliação
� NF = 0.4 * N1 + 0.6 * N2� N1 (0.0 – 10.0)
� (P1 + P2)/2
� PN2 (0.0 – 9.0)� (P3 + P4)/2
� N2 = PN2 + AI
Avaliação InterdisciplinarAI
� Valor: 0 a 1.0� Somada na N2 de todas as disciplinas� Calendário: 14 de Maio
Freqüência
� Falta Reprova� Mínimo: 75%� 120 presenças; 30 faltas� Cada aula conta 2 presenças� Cada AED conta 6 presenças
Atividade Externa à Disciplina
� AED 1: � Implementar um autômato finito� Entrega: 07/04
� AED 2:� Implementar um autômato de pilha� Entrega: 16/06
� Só serão aceitas atividades entregues na data correta.
� Cada AED, se devidamente correta, valerá até 1.0 na N1 e N2 respectivamente.
Bibliografia Básica
Bibliografia Complementar
Bibliografia Complementar
Material de Apoio
Cronograma
� Aulas 1- 11: � Introdução e Conceitos Básicos� Autômatos Finitos
� Prova 1 (09/03)� Aulas 14 – 23:
� Operações com Linguagens Regulares
� Prova 2 (07/04)
Cronograma
� Aulas 26 – 36:� Gramáticas – Linguagem Livre de Contexto
� Prova 3 (12/05)� Aulas 39 – 50
� Autômatos de Pilha� Maquina de Turing
� Prova 4 (16/06)
Breve Histórico
� Em 1936, Alan Turing (matemático) propôs a possibilidade de se construir um computador digital através da formalização de um procedimento em tempo finito.
Breve Histórico
� Turing estabeleceu um modelo formal de algoritmo.
� Ele reduziu os vários sistemas formais a um sistema básico, tornando possível o computador digital.
Breve Histórico
� Sistema Formal� Um “jogo” rigorosamente definido. � Especificar:
� Regras para manipulação dos símbolos.� A natureza dos símbolos.� A situação inicial � Lista de movimentos permitidos a uma dada
posição.
Breve Histórico
� Alan Turing criou uma máquina que executava operações sobre a teoria dos números por meio de regras de um sistema formal embutidas na mesma.
Breve Histórico
� Isso gerou uma nova perspectiva para formalizar a matemática.
� Turing descobriu que os números são mais importantes como símbolos.
Breve Histórico
� Tese de Church
“qualquer procedimento pode ser descrito por uma máquina de Turing”
Breve Histórico
� A teoria das linguagens formais surgiu nas décadas de 1940 e 1950.
� Seu objetivo inicial era modelar a função do cérebro, desenvolvendo teorias relacionadas com as linguagens naturais.
Breve Histórico
� Em 1969, S. Cookestendeu o estudo de Turing do que podia e do que não podia ser calculado.
� Classe de Problemas� P, NP, NP-hard
Porque estudar LFA?
� Apresenta uma fundamentação matemática da computação (fornece provas).
� É pré-requisito essencial para a disciplina de compiladores
Porque estudar LFA?
� Dá suporte à verificação da computabilidadede problemas (problemas reais tem solução computacional).
Porque estudar LFA?
� Para entender a complexidade de um problema. Um problema pode ser fácil ou difícil de se resolver. A complexidade de algoritmos pode fazer esta classificação baseando-se na dificuldade computacional do problema.
Porque estudar LFA?
� Para entender a teoria computacional. Alguns problemas básicos não podem ser resolvidos. Ela classifica os problemas em solúveis e não solúveis