Analise a seguinte gramática LR(1): 1. S -> E 2. E -> E + T 3. E -> T 4. T -> T * F 5. T -> F 6. F -> ( E ) 7. F -> id Considere a entrada id + id * id. Qual é a ação que o analisador LR(1) deve tomar quando chegar ao ponto onde id * id foi reconhecido?

Questão

Analise a seguinte gramática LR(1):

  1. S -> E
  2. E -> E + T
  3. E -> T
  4. T -> T * F
  5. T -> F
  6. F -> ( E )
  7. F -> id

Considere a entrada id + id * id. Qual é a ação que o analisador LR(1) deve tomar quando chegar ao ponto onde id * id foi reconhecido?

Alternativas

a) Reduzir a produção T -> F.

b) Reduzir a produção F -> id.

c) Deslocar o operador *.

92%

d) Entrar em um estado de erro.

e) Reduzir a produção E -> T.

Explicação

Para a gramática dada (expressões aritméticas clássicas), a precedência é codificada pela própria hierarquia de não-terminais:

  • EE trata de soma: EE+TTE \to E + T \mid T
  • TT trata de multiplicação: TTFFT \to T * F \mid F
  • FF trata de parênteses/identificador: F(E)idF \to (E) \mid id

Na entrada id + id * id, quando o analisador já leu id + id e está exatamente no ponto em que reconheceu o trecho id (o primeiro id do segmento id * id) e o próximo símbolo de entrada é *, a decisão correta do LR(1) é:

  1. O id reconhecido pode ser reduzido para FF (via FidF \to id), e então para TT (via TFT \to F).
  2. Mas, ao ver o lookahead *, o analisador não deve “fechar” a expressão como ETE \to T (ou forçar uma redução que impeça a multiplicação), porque a multiplicação tem maior precedência e deve ser associada dentro de TT.

Em termos de comportamento LR(1): com lookahead * após reconhecer um fator/termo inicial, a ação necessária é deslocar (shift) o operador * para permitir aplicar depois a produção TTFT \to T * F e reconhecer id * id como um TT antes de combinar com o + no nível de EE.

Portanto, a ação correta nesse ponto é deslocar o operador *.

Alternativa correta: (c).

Questões relacionadas

Ver últimas questões

Comece a estudar de forma inteligente hoje mesmo

Resolva questões de concursos e vestibulares com IA, gere simulados personalizados e domine os conteúdos que mais caem nas provas.

Cancele quando quiser.