Leia com atenção as instruções abaixo.
Formato da Entrega:
-
Arquivo no formato PDF.
-
Deve ser enviado através do Slack, no chat privado com o professor. Qualquer outro envio será desconsiderado.
-
O arquivo deve ser orientação formato retrato, não paisagem.
-
Você pode resolver no caderno e digitalizar usando o Google Drive ou colocar em um documento do Word ou LibreOffice, gerando o PDF. O tamanho do arquivo deve ficar abaixo de 10 MB.
-
No início do arquivo, deixe bem claro o título com: nome da atividade, seu nome e sua matrícula.
Valor: 4,0 pontos na 1ª Nota.
Data da Entrega:10/08/2020
Questão 01 - 1,0 Ponto
Dada a gramática:
exp -> exp soma termo | termo
soma -> +|-
termo -> termo mult fator | fator
mult -> *
fator -> (exp) | número
Escreva derivações à esquerda, árvores de análise sintática e árvores sintáticas para a
expressão 3 - (4 + 5 * 6).
Questão 02 - 1,0 Ponto
Considere a gramática a seguir:
lexp -> número | (op lexp-seq)
op -> +|-|*
lexp-seq -> lexp-seq lexp | lexp
Uma expressão 34 - 3 * 42 seria escrita nessa gramática como (-34 (* 3 42)).
Responda às perguntas abaixo:
-
Precedência e associatividade são problemas para essa gramática? A gramática é ambígua?
Mostre alguns exemplos de derivações para expressões e discuta se é possível considerar
duas escolhas de regras em algum momento.
-
Observando o exemplo da Figura 3.7 do livro texto, escreva declarações em C para uma
estrutura de árvore sintática para a gramática.
Questão 03 - 2,0 Pontos
Considere o programa TINY a seguir:
read x;
x := x + 1;
write x
Desenhe as árvores de análise sintática e a árvore sintática de acordo com a metodologia descrita na
seção 3.7 do livro texto.