Compiladores/Aula Prática 03: Difference between revisions
From Wiki**3
No edit summary |
|||
| (6 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{TOCright}} | |||
== Tópicos == | == 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. | 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. | ||
| Line 4: | Line 5: | ||
Analisadores lexicais (múltiplas expressões/tokens em simultâneo). | Analisadores lexicais (múltiplas expressões/tokens em simultâneo). | ||
== | == Exercício 1 == | ||
== | 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 }'''. | ||
* [[Theoretical Aspects of Lexical Analysis/Exercise 1|Problema 1]]: '''(a|b)*''' | |||
* [[Theoretical Aspects of Lexical Analysis/Exercise 2|Problema 2]]: '''(a*|b*)*''' | |||
* [[Theoretical Aspects of Lexical Analysis/Exercise 3|Problema 3]]: '''((ε|a)b)*''' | |||
* [[Theoretical Aspects of Lexical Analysis/Exercise 4|Problema 4]]: '''(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. | |||
* [[Theoretical Aspects of Lexical Analysis/Exercise 5|Problema 1]]: '''G = { ab, ab*, a|b }''', input string = '''abaabb''' | |||
* [[Theoretical Aspects of Lexical Analysis/Exercise 6|Problema 2]]: '''G = { aa, aaaa, a|b }''', input string = '''aaabaaaaa''' | |||
== Resoluções == | |||
As ligações acima contêm as soluções para os exercícios propostos. | |||
Procurar resolver sem consultar. | |||
[[category:Compiladores]] | [[category:Compiladores]] | ||
[[category:Ensino]] | [[category:Ensino]] | ||
Latest revision as of 15:23, 9 February 2015
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).
Exercício 1
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 }.
- Problema 1: (a|b)*
- Problema 2: (a*|b*)*
- Problema 3: ((ε|a)b)*
- Problema 4: (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.
- Problema 1: G = { ab, ab*, a|b }, input string = abaabb
- Problema 2: G = { aa, aaaa, a|b }, input string = aaabaaaaa
Resoluções
As ligações acima contêm as soluções para os exercícios propostos.
Procurar resolver sem consultar.