Você está na página 1de 1

CIC220 Compiladores Avaliação parcial T1 13/out/20

1) Seja a linguagem
A = {w  { 0, 1 }* | w tem prefixo 0 e comprimento ímpar ou, prefixo 1 e comprimento par e |w |>4}
Desenvolva um analisador léxico para verificar sequências binárias que pertencem, ou não, a
linguagem A. Desenvolva uma implementação manual do analisador, em C ou pseudocódigo,
observando que as sequências na entrada terão o símbolo ‘$’ logo após o último dígito sinalizando
o final de arquivo e, na saída serão listados as entradas e tokens reconhecidos (por exemplo,
[ 01011 ; ímpar ] ou, [111010 ; par ] ), ou entrada e indicação de erro.

2) Considerando o uso da ferramenta FLEX, desenvolva um analisador léxico para processar um


arquivo-texto, por exemplo, essa folha de avaliação, realizando uma estatística sobre palavras que
iniciam e terminam com vogais, iniciam e terminam com consoantes, iniciam com vogal e
terminam com consoante ou iniciam com consoante e terminam com vogal. Após o
processamento de todo o texto, deverá imprimir o total de palavras do texto e, as contagens de
cada uma das possibilidades de inicio e fim das palavras, observe que números (expressos em
algarismos) não entram na estatística.

3) Considere as seguintes regras da gramática G3:

Lexp → num | (Op Lexp-seq)


Op → + | - | *
Lexp-seq → Lexp-seq Lexp | Lexp
num → 0 | ... | 9 | num0 | ... | num9

a) Se necessário, transforme a gramática G3 em LL(1);


b) Monte um analisador preditivo recursivo para a gramática G3 ou G3’ (modificada).

4) Dada a gramática G4:


G4 = ({S, A, B, C},{a, b, c, d}, P, S)
P = { S → SAB | abA | baC
A → aSb | d
B → bScC| c
C → cCa | b }

a) gramática G4 é LL(1)? Justifique. Caso negativo, escreva uma gramática G4'


equivalente (transformada).
b) Calcule os conjuntos FIRST e FOLLOW para cada não terminal da gramática LL(1):
G4 ou G4’.
c) Construa a tabela de análise sintática a ser usada por um método de análise
preditiva não recursiva, a partir da gramática resultante (em i) incluindo um
tratamento de erros.
d) Mostre as ações do analisador preditivo não recursivo correspondente (a partir da
tabela LL(1) do item iii), para a cadeia de entrada: bacbddc.

Você também pode gostar