Linguagens Formais e Autômatos – TIN0119

Obrigatória – 60 horas – 4 créditos
Pré-requisitos: Estruturas Discretas
Professor Responsável: Geiza Hamazaki

Objetivos da Disciplina

Capacitar o aluno a:

  • Identificar e classificar linguagens geradas por gramáticas
  • Escrever gramáticas que representem linguagens
  • Projetar máquinas que manipulem a linguagem
  • Identificar o potencial e o limite de diferentes tipos de máquinas teóricas para manipulação de linguagens
  • Projetar linguagens e máquinas capaz de resolverem problemas reais
  • Verificar se um problema pertence ou não a classe de problemas intratáveis

Ementa

Hierarquia de Chomsky. Alfabetos e linguagens. Gramáticas. Autômatos finitos e linguagens regulares; máquinas de pilha e linguagens livres de contexto, gramáticas LL(k) e LR(k); gramáticas sensíveis a contexto. Máquinas de Turing. Capacidade e limite de cada classe. Decidibilidade e Computabilidade.

Conteúdo Programático

  • Revisão de conceitos de conjuntos, funções e relações
  • Apresentação dos conceitos de alfabetos, cadeias e linguagens
  • Definição dos conceitos de procedimentos e algoritmos, conjuntos recursivos e recursivamente enumeráveis
  • Gramáticas: definição e tipos de gramáticas
  • Linguagens e gramáticas regulares
    • Autômatos finitos: determinísticos e não-determinísticos
    • Equivalência
    • Minimização de autômatos
    • Expressões regulares
    • Equivalência entre autômatos finitos e gramáticas regulares
  • Linguagens e gramáticas livres de contexto
    • Linguagens livres de contexto
    • Autômatos de pilha
  • Máquinas de Turing
  • Decidibilidade e computabilidade
  • Linguagens sensíveis a contexto e autômatos linearmente limitados
  • Linguagens determinísticas e seus aceitadores

Metodologia

Exposição de conteúdo: aulas presenciais terão apresentação do conteúdo teórico e aplicação dos exercícios de fixação.
Aprendizagem colaborativa: para o entendimento dos conteúdos serão apresentados questões, pelo professor, cujas soluções serão propostas e discutidas pelos alunos.
Aprendizagem baseada em projeto: a partir dos exemplos de sistemas apresentados em sala, o aluno deverá desenvolver um projeto para a solução de um problema prático ou apresentado na literatura.

Avaliação

Avaliação contínua: Ao longo da disciplina, o estudante entregará tarefas intermediárias aplicando e fixando individualmente o conteúdo da disciplina em exercícios propostos pelo professor. Em grupos, os estudantes respondem à cada aula a um conjunto de questões propostas pelo professor.
Avaliação Somativa: Ao longo da disciplina haverão três avaliações(G1, G2 e G3) para o cálculo da nota final.
Avaliação 1 (G1): Esta será composta de um prova teórica versando sobre os conceitos ministrados, trabalhos individuais e as participações em sala de aula.
Avaliação 2 (G2): Esta será composta de um prova teórica versando sobre os conceitos ministrados, participações em sala de aula e um projeto para aplicar os conceitos teóricos apresentados na solução de um problema real ou apresentado pela literatura.

Se média das duas avaliações do aluno for maior ou igual a 7,0 será aprovado sem necessidade de prova final (G3). Caso contrário, fará uma prova final.

Cálculo da nota-final: A nota final será igual a média da G1e a G2 se esta for maior que 7,0 senão esta será igual a ((média da G1 e a G2) + G3)/2.

Serão aprovados apenas os alunos com média final igual ou superior a 5,0.

Bibliografia

  • HOPCROFT ,J. E.; ULLMAN , J. D., e MONTWANI , R. ; Introdução à Teoria de Autômatos Linguagens e Computação. Editora Campus, tradução da segunda edição americana, 2002.
  • MENEZES , P. B.; Linguagens Formais e Autômatos. Editora Sagra Luzzatto, 2000.
  • DIVERIO , T.A.; MENEZES, P.B.; Teoria da Computação: Máquinas Universais e Computabilidade. Editora Sagra Luzzatto, 1999.
  • Apostila de Linguagens Formais e Autômatos redigida pelo Prof. José Lucas RANGEL.

mapa CCET - Avenida Pasteur, 458 - Urca
Rio de Janeiro / RJ - CEP: 22290-255
Telefone: (21)3873-6400