Generazione del Codice
Esercizio 1
Si abbia un linguaggio di istruzioni S con l'assegnamento di espressioni
(costruite da identificatori con il solo operatore di somma e parentesi)
e la selezione della forma if B
then S else
S fi (con B identificatore o uguaglianza di identificatori).
Si supponga che le istruzioni oltre che un effetto laterale abbiano anche
un valore (il valore da assegnare nel caso dell'assegnamento, il valore
associato all'istruzione selezionata nel caso della selezione) e quindi
possano essere trattate come espressioni e comparire come tali. Un esempio
è
A:=B+if C=D then E:=F+G
elseL:=H+M
fi
dove si vuole che a seconda dell'uguaglianza o no di C e D venga assegnato
F+G ad E oppure H+M ad L e il valore venga sommato a B ed assegnato ad
A. Questo è anche il valore dell'istruzione di assegnamento.
-
Si dia una grammatica e uno di traduzione discendente che generi il codice
per effetti laterali. Si facciano puntare i salti ai seguiti fisici cosicché
S abbia come unico attributo il nome della variabile cui è associato
il suo valore.
-
Si dia una grammatica e uno di traduzione ascendente.
Ultimo
aggiornamento 17 Maggio 2001 |