Durante o processo de verificação da estrutura sintática de um programa, o analisador simula o processo de construção da árvore de derivação para o programa que está sendo compilado. Usualmente esse processo é realizado adotando-se uma dentre duas abordagens possíveis: a top-down, em que parte-se do símbolo inicial da gramática e tenta-se alcançar os elementos que compõe o programa; e a botton-up, que segue o princípio contrário, partindo do código e realizado reduções na sentença até que se alcance o símbolo inicial que caracterize o elemento raiz da árvore. A respeito destas estratégias assinale a alternativa correta.
a. |
Os métodos descendentes são usualmente mais convenientes em casos de implementação manual, enquanto os métodos ascendentes (botton-up) são considerados mais favoráveis para construtores automáticos de analisadores. |
|
b. |
Dada uma gramática G qualquer, sempre é possível obter tanto um analisador ascendente quanto descendente para ela. Assim, a escolha de qual abordagem será empregada no projeto é meramente uma questão de escolha ou preferência. |
|
c. |
O tempo de compilação de um programa independe do método utilizado em seu analisador. Isso se justifica pelo fato de que, se considerarmos o mesmo código, os aspectos sintáticos do programa em ambas abordagens são iguais (mesma árvore de derivação) e portanto serão verificados através das mesmas operações (expansões dos não-terminais e verificações dos terminais). |
|
d. |
Dentre os métodos top-down, a Análise Descente Recursiva é considerado o mais eficiente e que oferece melhor desempenho na verificação do código. Em meio aos métodos botton-up, o método LL(k) é o exemplo mais comum, pois a maioria das ferramentas automáticas geram analisadores deste tipo. |
|
e. |
O método descendente LR(1) é o mais eficiente em termos de tempo médio de análise, garantindo bom desempenho mesmo para programas bastante complexos em termos sintáticos. Por este motivo os métodos LR são os mais utilizados em projetos de compiladores comerciais. |
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar