Atividade Compiladores
Curso: Engenharia da Computação
Disciplina: COMPILADORES
Período: 8º
Data Entrega: 19/09/2014
Valor: 5 pontos
Descrição da atividade:
1. Consulte os manuais de referência da linguagem para determinar:
a. Os conjuntos de caracteres que formam o alfabeto de entrada (excluindo aqueles que só podem aparecer nas cadeias de caracteres ou comentários)
b. A forma léxica de constantes numéricas
c. A forma léxica de identificadores
Para cada uma das linguagens: C; C++; C#;FORTRAN; JAVA e SQL
2. Descreva as linguagens denotadas pelas seguintes expressões regulares:
a. a(a|b)*a
b. ((Ø,|a)b*)*
c. (a|b)*a(a|b)(a|b)
d. a*ba*ba*ba*
3. Em uma cadeia de tamanho n, quantos dos seguintes existem?
a. Prefixos
b. Sufixos
c. Subcadeias
d. Subsequencias
4. A maioria das linguagens diferencia maiúsculas de minúsculas, de modo que as palavras-chave podem ser escritas apenas de uma maneira, e as expressões regulares descrevendo seu lexema são muito simples. Entretanto, algumas linguagens, como SQL, não fazem essa diferenciação, de modo que uma palavra-chaver pode ser escrita em minúsculas ou em maiúsculas, ou em qualquer mistura de letras. Assim, a palavra-chave SELECT também pode ser escrita como select, Select ou
SElecT, por exemplo. Mostre como escrever uma expressão regular para uma palvra-chave em uma linguagem que não diferencie maiúsculo de minúsculo. Ilustre a ideia escrevendo a expressão para “select” em SQL.
5. Escreva definições regulares para as seguintes linguagens:
a. Todas as cadeias de letras minúsculas que contem as cinco vogais em ordem;
b. Todas as cadeias de letras minúsculas em que as letras estão em ordem lexicográfica crescente c. Comentários, consistindo em uma cadeia cercada por /* e */, sem um */ intercalado, a menos que esteja dentro de aspas (“)
6. Escreva classes de caracteres para os seguintes conjuntos de caracteres:
a. As dez primeiras letras (até “j”) em maiúsculas ou minúsculas.
b. As consoantes