Compiladores
Lista 2
Todo mundo já teve que fazer pra a primeira entrega (questões 3, 4 e 5) - se alguém quiser por pra gente dar uma olhada tb, dado q jah foi a entrega
3. Defina formalmente, através de expressões regulares sobre o conjunto de caracteres ASCII, a sintaxe de cada um dos tipos de átomos a serem extraídos do texto-fonte pelo analisador léxico, bem como de cada um dos espaçadores e comentários.
Bosco: (Seguindo a linguagem-exemplo do livro do JJ dada abaixo, por favor confiram se está tudo ok =) )
Obs.: esta notação NÃO é a BNF, foi apenas muita coincidência o uso de tags para os elementos =P
Definição dos átomos a serem reconhecidos:
· Identificador e/ou palavra reservada o ( | )*
· Inteiro o *
· Atribuição o ‘:’ ’=’
· Outros Caracteres o ( ‘:’ | )
Definição dos elementos a serem filtrados e descartados:
· Espaçadores o ( | )*
· Comentários o % ( )*
Elementos adicionais:
=(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z)
=(0|1|2|3|4|5|6|7|8|9)
=( ‘ ’ | ’\t’ ) {‘ ‘ é o símbolo de espaço, e ‘\t’ o de tabulação}
=( ‘\r’ | ’\n’ ) {Os símbolos ‘\r’ e ‘\n’ são caracteres de nova linha} = Um terminal do conjunto ASCII exceto os de nova linha = Um terminal do conjunto ASCII que não seja ,,,,’:’,’%’
4. Converta cada uma das expressões regulares, assim obtidas, em autômatos finitos equivalentes que reconheçam as correspondentes linguagens por elas definidas.
Bosco: Os autômatos finitos que reconhecem as linguagens acima estão aqui expostos:
5. Crie um autômato único que aceite todas essas linguagens a partir de um mesmo estado inicial, mas que