Compiladors II - 25002
Examen Prácticas - Junio 2000

  1. El node ('BLOC' espai_vars espai_temporals) representa:
     espai_vars és l'espai necessari per guardar totes les variables del bloc i espai_temporals l'espai per les variables temporals del bloc corresponent
     espai_vars és l'espai necessari per guardar totes les variables del bloc corresponent i espai_temporals s'incrementa únicament quan creem una variable temporal en qualsevol lloc del programa principal, no de les fucions
     a), però únicament s'incrementa si les variables temporals pertanyen a una funció dins del programa
       b), però únicament s'incrementa si les variables temporals pertanyen a una funció dins del programa
       Cap de les anteriors
       No contesto...
 
  2. Quan dividim en blocs bàsics i trobem ":=" "OUTPUT" o "RETURN", i hi ha una crida a funció "FUN",
     hem de crear un nou bloc bàsic a partir e la crida a una funció si els paràmetres són per referència
     hem de crear un nou bloc bàsic a partir de la crida a una funció si els paràmetres són variables globals
     Si la funció no té paràmetres per referència ni paràmetres que siguin varibles globals, mai s'ha de crear un nou bloc bàsic a partir de la crida a una funció
       a) i b)
       c) i d)
       No contesto...
 
  3. La condició d'un if:
     Pertany a un bloc bàsic nou
     Pertany a un bloc bàsic anterior
     No pertany a cap bloc bàsic
       No s'hi aplica cap optimització
       a) i d)
       No contesto...
 
  4. La conversió de restes a sumes i divisions a multiplicacions, quin sentit té?
     Simplifica els algorismes de propagació de constants i folding
     Simplifica l'algorisme de reducció de freqüència
     Permet trobar un nombre major de subexpressions comuns per reduir
       b) i c)
       a) i b)
       No contesto...
 
  5. L'ordre en què s'han d'ordenar els operands d'una expressió és:
     literals, variables globals, variables locals, arrais globals, arrais locals
     literals, variables globals, arrais globals, variables locals, arrais locals
     literals, variables locals, variables globals, arrais globals, arrais locals
       literals, variables locals, variables globals, arrais locals, arrais globals
       literals, variables globals, variables locals, arrais globals, arrais locals, subexpressions (funcions...)
       No contesto...
 
  6. En reordenació d'expressions, a l'expressió: b:= a+f(...)+a
     Si la instrucció anterior és a:=5, es pot propagar el valor de 5 a les dues a
     Si la segona a és local, però es passa per referència com a paràmetre de la funció, no es reordena
     Si la segona a és global, tampoc es pot passar a davant de la crida a funció
       a) i b)
       b) i c)
       No contesto...
 
  7. On no s'aplica la reordenació d'expressions:
     Al fill dret d'un node ':='
     Al fill esquerre d'un node 'Adre'
     Al fill dret d'un node ','
       a) i b)
       b) i c)
       No contesto...
 
  8. Quan realitzem reducció de subexpressió comuns, i processem una expressió, cal:
     Si la instrucció anterior era una assignació, esborrar les subexpressions de la taula d'expressions que continguin la variable abans assignada
     Esborrar totes les subexpressions de la taula d'expressions
     Si hem de crear una variable temporal nova amb una subexpressió associada, cal afegir dita subexpressió a la taula d'expressions
       a) i c)
       Cap de les anteriors
       No contesto...
 
  9. En la reducció de freqüència, si hi ha dins d'un bucle una crida a funció
     Mirem si els paràmetres són per referència o per valor
     Esborrem la llista de variables modificades
     No fem la reducció
       a) i b)
       Cap de les anteriors
       No contesto...
 
  10. Quan eliminem totes les instruccions d'un for, és a dir, el for queda buit,
     quan volem visualitzar el codi obtingut amb "vis -c" diu que l'arbre no es correcte
     el "vis -v" i l'interpret l'entenen perfectament...
     no compila correctament
       a) i b)
       a) i c)
       No contesto...
 

Check...