Carregando...
Carregando...
Ajude a melhorar a plataforma
Dado o seguinte trecho de código na linguagem de programação Python:
if (x > 0) then y = x + 1; else y = x – 1;
Suponha que você está construindo um analisador sintático descendente LL(1) para essa linguagem. Qual é o próximo passo de análise após reconhecer a produção if (x > 0) then?
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
Alternativa A - Procurar por um token de lookahead correspondente a uma instrução dentro do bloco then.
O processo de análise sintática descendente do tipo $LL(1)$ (Left-to-right, Leftmost derivation) funciona de cima para baixo, tentando reconstruir a árvore de derivação a partir do símbolo inicial da gramática. O numeral "1" indica que o analisador utiliza um símbolo de avanço (lookahead) para decidir qual produção aplicar.
Em um analisador preditivo $LL(1)$, quando o analisador encontra uma palavra-chave como then, ele espera que o próximo componente seja o corpo do comando condicional (uma instrução ou bloco). Como a análise é descendente, ela não realiza "reduções" (que são típicas de analisadores $LR$), mas sim a expansão de não-terminais. Para saber qual regra de produção seguir para o próximo não-terminal (geralmente stmt ou instrucao), o analisador consulta o próximo token disponível no fluxo de entrada.
| Opção | Avaliação |
| :--- | :--- |
| A (Correta) | O analisador $LL(1)$ é preditivo; após then, ele precisa decidir qual instrução será processada consultando o lookahead. |
| B, C, D | Incorretas, pois utilizam o termo "redução", que pertence à análise ascendente ($LR$), não à $LL(1)$. |
| E | Incorreta, pois o token else só é relevante após o processamento completo do bloco then. |
Dado que o $LL(1)$ opera por expansões e predições baseadas no símbolo atual, o próximo passo lógico após reconhecer a estrutura sintática inicial do if-then é verificar o lookahead para iniciar a derivação da instrução seguinte.
Alternativa A.