PUERTA | PUERTA-CS-2005 | Pregunta 86

Considere la siguiente expresión gramatical. Las reglas semánticas para el cálculo de expresiones se indican junto a cada producción gramatical.

 E → number      E.val = number. val
    | E '+' E      E(1).val = E(2).val + E(3).val
    | E '×' E     E(1).val = E(2).val × E(3).val 

Suponga que los conflictos en la Parte (a) de esta pregunta se resuelven y se genera un analizador LALR(1) para analizar expresiones aritméticas según la gramática dada. Considere una expresión 3 × 2 + 1. ¿Qué propiedades de precedencia y asociatividad realiza el analizador generado?
(A) Igual precedencia y asociatividad por la izquierda; expresión se evalúa a 7
(B) Igual precedencia y asociatividad correcta; expresión se evalúa como 9
(C) La precedencia de ‘x’ es mayor que la de ‘+’, y ambos operadores se dejan asociativos; la expresión se evalúa como 7
(D) La precedencia de ‘+’ es mayor que la de ‘×’, y ambos operadores se dejan asociativos; expresión se evalúa a 9

Respuesta: (B)
Explicación:La respuesta es B ya que las producciones pertenecen al mismo no terminal y como YACC resuelve por shift over reduce, la asociatividad será asociativa por la derecha.

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *