Objetivos

Ao completar esta disciplina deve conseguir:

  1. Discutir máquinas de estados finitos.
  2. Construir expressões regulares, autómatos e gramáticas para aceitar/gerar linguagens especificadas; Converter entre representações equivalentes.
  3. Determinar o lugar de uma linguagem na Hierarquia de Chomsky e os principais problemas nas definições da sintaxe de linguagens de programação.
  4. Usar gramáticas formais para especificar a sintaxe de linguagens, ferramentas declarativas para gerar analisadores e scanners.
  5. Definir uma semântica formal e uma árvore de sintaxe abstrata para uma linguagem de programação simples.
  6. Explicar como os programas que processam outros programas tratam os outros programas e as vantagens de ter representações de programas.
  7. Escrever um programa para processar alguma representação de código.