Compiladores - Atividade 03

Leia com atenção as instruções abaixo.

Coloque os arquivos da atividade na pasta atividades/atividade03 no seu repositório. Use a sintaxe da linguagem Markdown para a questão 01 em um arquivo questao01.md, enquanto na questão 02 o arquivo Lex deve ser questao02.l.

Valor: 2,0 pontos na 1ª Nota.

Data da Entrega Limite: 05/06/2021

Questão 01 - 1,0 Ponto

  1. Use a construção de Thompson para converter a expressão regular (aa|b)*(a|bb)* em um NFA. Aqui pessoal acho que explicação na aula ficou bem precisa, portanto quero que façam com os detalhes de cada construção intermediária.
  2. Converta o NFA anterior em um DFA usando a construção de subconjuntos. Como no próprio livro texto a explicação está informal, vocês podem ter liberdade ao explicar a resolução que apresentarem aqui, não precisa ser exatamente como fiz em aula, desde que adote os mesmos principios. Tente fazer e descreva aqui na forma mais conveniente como tentou resolver a questão. Em suma, não vale colocar apenas o resultado final do DFA. Também relembrando para não inserir fotografias de cadernos, utilize ferramentas digitais para facilitar a compreensão.

Questão 02 - 1,0 Ponto

Escreva um arquivo de entrada Lex para produzir um programa que conte caracteres, palavras e linhas em um arquivo de texto e produza um relatório. Defina uma palavra como qualquer sequência de letras e/ou dígitos, sem pontuação ou espaços. Pontuação e espaços não contam como palavras.