Computação Múltipla Escolha

Considere uma gramática livre de contexto para uma linguagem de programação. Você está construindo um analisador sintático descendente LL(1) para essa gramática. Qual das seguintes afirmações é verdadeira sobre a análise LL(1)?

Considere uma gramática livre de contexto para uma linguagem de programação. Você está construindo um analisador sintático descendente LL(1) para essa gramática. Qual das seguintes afirmações é verdadeira sobre a análise LL(1)?

  1. A análise LL(1) é sempre mais eficiente do que a análise LR(1).
  2. A análise LL(1) é baseada em lookahead, olhando apenas um símbolo à frente.
  3. A análise LL(1) funciona apenas para gramáticas ambíguas.
  4. A análise LL(1) não permite recursão à esquerda na gramática.
  5. A análise LL(1) usa a técnica de redução para construir a árvore de análise.

Resolução completa

Explicação passo a passo

A
Alternativa A

Análise da Questão sobre LL(1)

Introdução

Esta questão aborda conceitos fundamentais de análise sintática em compiladores. O analisador LL(1) é uma técnica de parsing descendente amplamente utilizada no desenvolvimento de linguagens de programação.

Desenvolvimento

Para compreender a resposta correta, precisamos analisar cada alternativa com base nas propriedades dos analisadores LL(1):

O que significa LL(1)?

LetraSignificadoDescrição
LFirstLeitura da esquerda para direita
LSecondConstrução da árvore da esquerda para direita
(1)LookaheadUtiliza 1 token de antecipação

Análise das Alternativas

  • Alternativa A: FALSA. LR(1) é geralmente mais poderoso e pode processar gramáticas mais complexas. Não há superioridade absoluta de eficiência entre eles.
  • Alternativa B: VERDADEIRA. O "1" em LL(1) refere-se especificamente ao uso de um único símbolo de lookahead para decidir qual produção aplicar.
  • Alternativa C: FALSA. Gramáticas LL(1) devem ser livres de ambiguidade. Gramáticas ambíguas não podem ser analisadas por LL(1).
  • Alternativa D: Verdadeira em princípio, mas menos completa. LL(1) realmente exige eliminação de recursão à esquerda, porém esta é uma consequência, não a definição principal.
  • Alternativa E: FALSA. Redução é característica de parsing ascendente (LR). LL(1) usa expansão (top-down).

## Análise

Características principais do LL(1):

  • Usa tabela de previsão para decisões determinísticas
  • Requer gramáticas sem recursão à esquerda
  • Precisa de eliminação de fatoração comum
  • Baseia-se em conjuntos FIRST e FOLLOW
  • É um caso específico de parsing descendente

Comparativo:

TipoDireçãoTécnicaLookahead
LL(1)DescendenteExpansão1 símbolo
LR(1)AscendenteRedução1 símbolo

Conclusao

A alternativa B é a correta porque define a essência da notação LL(1): o uso de lookahead de um símbolo para guiar as decisões de expansão durante a análise sintática descendente.

Alternativa B

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.