A disciplina sobre compiladores é desafiadora, porem a classe estava muito bem, dai surgiu a ideia do professor em construir um analisador sintático será desenvolver um algoritmo que nos permita construir uma árvore de derivação para qualquer sentença (estrutura de comando) que pertença a linguagem. Sugeriu uma estrutura, simples, que represente uma expressão matemática, do tipo a b * c + . O nosso alfabeto será S= {a, b, c, +, *} e a gramática no padrão EBNF a qual iremos denominar de L, será:
35
Para ajudar na compreensão dos alunos e auxilio na derivação Usa-se o símbolo “ Þ ” para indicar um passo no processo de derivação, assim segundo Aho(2007), podemos indicar de uma forma mais abstrata se a produção A g ® e sendo a e b cadeias quaisquer, dizemos que aAb Þ agb . de acordo com estas convenções, antes de aplicarmos o processo de derivação à gramática no padrão EBNF a qual estamos analisando, vamos reescrever a gramática equivalente de acordo com os padrões convencionados aqui, analise:
35a
Portanto, as dicas do professor para os alunos foi primordial para que eles recebessem a cadeia que deseja-se derivar sendo ela: w1 = a + b , assim vamos aplicar as derivações sucessivas até chegarmos aos símbolos terminais, sabendo que são 7 passos e estão todos em posições trocadas, o desafio, sequenciar os passos, analise:
35b
1. o E mais a esquerda.
2. o ID. Chegamos ao símbolo terminal a.
3. OP.
4. a regra mais a esquerda, pois a cadeia w1 tinha um OP.
5. ID. Chegamos ao símbolo terminal b.
6. o ID. Chegamos ao símbolo terminal +.
7. o E.
A seguir assinale a alternativa que apresenta a ordem dos procedimentos realizados:
Escolha uma:
a. 7 – 3 – 4 – 1 – 6 – 5 – 2. Incorreto
b. 3 – 2 – 4 – 1 – 7 – 5 – 6.
c. 2 – 3 – 4 – 1 – 7 – 5 – 6.
d. 6 – 3 – 4 – 1 – 5 – 7 – 2.
e. 4 – 3 – 2 – 1 – 7 – 6 – 5.
Soluções para a tarefa
Respondido por
1
NÃO E ESSA
e. 3 – 2 – 4 – 1 – 7 – 5 – 6. Incorreto
Respondido por
4
c. 2 – 3 – 4 – 1 – 7 – 5 – 6. (Correto no AVA)
Perguntas interessantes