¡GoConqr estrena diseño! Cuéntanos qué te parece.

Test

PL TecerParcial

natalia garcia 11 preguntas

Hacer el test

Preguntas del test (11)

  1. 1Un traductor dirigido por la sintaxis consiste en añadir a un autómata con pila la posibilidad de ejecutar código asociado a las reglas sintácticas y transmitir información a través de los símbolos de las mismas.
    1. AVerdadero
    2. BFalso
  2. 2Dado el siguiente traductor dirigido por la sintaxis, indica el tipo de cada atributo existente en él:
    S ::= {A.x = 0;} A C {print(C.z * A.y);}
    A ::= a {A1.x = A.x + 1} A1 {A.y = A1.y} | b {print(A.x); A.y = A.x}
    C ::= c {C.z = 1;} | d {C.z = 2;}
    A.x es el único atributo heredado, mientras que A.y y C.z son sintetizados.
    1. AVerdadero
    2. BFalso
  3. 3Si un traductor de un analizador ascendente implementa un orden de evaluación basado en árbol sintáctico, la ejecución de las acciones se asociará a las derivaciones realizadas durante el análisis.
    1. AVerdadero
    2. BFalso
  4. 4Sobre las acciones semánticas que faltan en la producción T ::= T1*F del vídeo, la acción correcta sería:
    T ::= T1*F {T1.val = T.val * F.val}
    Imagen de la pregunta 4
    1. AVerdadero
    2. BFalso
  5. 5Sobre las acciones semánticas que faltan en las producciones E ::= T y T ::= F del vídeo, es cierto que: no es necesario incluir ninguna acción puesto que no hay ninguna operación que realizar en estas producciones.
    Imagen de la pregunta 5
    1. AVerdadero
    2. BFalso
  6. 6La acción semántica de la producción F ::= (E) será:
    F ::= (E) {F.val = E.val}
    Imagen de la pregunta 6
    1. AVerdadero
    2. BFalso
  7. 7Dado el siguiente traductor dirigido por la sintaxis especificado como un esquema de traducción (EDT):
    S ::= {A.x = 0;} A C {println(C.z * A.x);}
    A ::= a {A1.x = A.x + 1} A1 {A.y = A1.y} | b {println(A.x); A.y = A.x}
    C ::= c {C.z = 1;} | d {C.z = 2;}
    Al procesar la cadena de entrada:
    aabd
    El resultado sería:
    2
    0
    1. AVerdadero
    2. BFalso
  8. 8La siguiente gramática especifica un traductor capaz de hacer restas de enteros:
    S ::= S1 – cte {S.valor = S1.valor – cte.valex}
    | cte {S.valor = cte.valex}
    Para poder implementar un traductor descendente sería necesario eliminar la recursividad por la izquierda en el traductor. Se propone la siguiente transformación:
    S ::= cte – S1 {S.valor = cte.valex - S1.valor}
    | cte {S.valor = cte.valex}
    1. AVerdadero
    2. BFalso
  9. 9Dado el siguiente código de un traductor recursivo:
    float X(float X_at2)
    {
    float X1_at1, X1_at2, z_lex, W_v;
    if(entrada == z){
    cmp(z);
    X1_at2=f1(X_at2,z_lex);
    X1_at1=X(X1_at2);
    cmp(y);
    return(X1_at1);
    } else if(entrada == t){
    W_v = W();
    return(f2(X_at2,W_v));
    } else error();
    }
    1. AEl código de este traductor recursivo se asocia a la siguiente definición dirigida por la sintaxis:
      X ::= z {X1.at2 = f1(X.at2,z.lex);} X1 y {X.at1 = X.at1;}
      | W {X.at1 = f2(X.at2,W.v);}
    2. BX es un símbolo con un atributo sintetizado representado por f2.
    3. CX es un símbolo con un atributo heredado representado por X_at2.
    4. DW es un símbolo con un atributo heredado representado por W_v.
  10. 10Indique si la siguiente afirmación es cierta o falsa:
    La traducción ascendente, TDS implementado con analizadores ascendentes, no permite la ejecución de acciones semánticas intercaladas en el consecuente. Al basarse en un analizador ascendente funciona por reducciones, por lo que sólo podremos ejecutar acciones cuando se apliquen estas reducciones, lo que implica la detección consecuentes completos, no con consecuentes parcialmente detectados.
    1. AVerdadero
    2. BFalso

Información

Descripción
PL
Idioma
Español
Visitas
54
Etiquetas
plingeniería
Valoración
Aún sin valoraciones
Valora este test
Valora este test

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?