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