Generazione del Codice


 

Esercizio 22

Si consideri un linguaggio di concatenazioni di istruzioni etichettate. Le istruzioni sono assegnamento a una variabile della somma di due variabili, salto incondizionato e salto condizionato dall'uguaglianza di due variabili.
  1. Si scriva uno schema discendente deterministico che calcoli come attributo per ogni istruzione il numero di salti (condizionati e incondizionati) all'istruzione.
  2. Si spieghi quali attributi ereditati e/o sintetizzati si usano e con quale significato. Non si usino strutture globali ma si passi l'informazione come attributo. Si supponga di avere i costruttori di struttura che occorrono e le funzioni per reperirvi l'informazione voluta.
  3. Si mostri l'albero sintattico annotato con gli attributi applicando lo schema nel caso dell'esempio seguente:

  1. a := b + c
  2. if a = d goto 4
  3. c := g + h
  4. if g = h goto 6
  5. goto 8
  6. k := g + m
  7. goto 4
  8. k := g + n

 
 
 
 
Ultimo aggiornamento 3 Maggio 1999