Tópicos
Análise lexical: expressões regulares, algoritmo de Thompson (construção do NFA), determinização (construção do DFA), minimização de DFA, análise de entrada.
Analisadores lexicais (múltiplas expressões/tokens em simultâneo).
Para cada uma das expressões regulares seguintes, calcular o autómato finito não-determinista (NFA) pelo algoritmo de Thompson. Para cada um dos casos, calcular o autómato determinista (DFA) mínimo. Em todos os casos, o alfabeto é Σ = { a, b }.
- (a|b)*
- (a*|b*)*
- ((ε|a)b)*
- (a|b)*abb(a|b)*
Exercício 2
Para cada uma das seguintes sequências ordenadas seguintes, calcular o autómato finito não-determinista (NFA) pelo algoritmo de Thompson. Para cada um dos casos, calcular o autómato determinista (DFA) mínimo. Em todos os casos, o alfabeto é
Σ = { a, b }. Indicar em quantos passos é processada a entrada apresentada.
- G = { ab, ab*, a|b }, entrada = abaabb
- G = { aa, aaaa, a|b}, entrada = aaabaaaaa
Resoluções
Resoluções destes exercícios podem ser obtidas no wiki da disciplina, na secção sobre aspectos teóricos de análise lexical.