Generazione del Codice


 

Esercizio 15

Si consideri il linguaggio delle espressioni costruite a partire da costanti e variabili con somma e prodotto e arricchite con il costrutto sommatoria

sum <espressione>1 for <variabile> from <espressione>2

to <espressione>3 by <espressione>4 endsum

che prescrive la sommatoria di <espressione>1 per <variabile> che varia nell'intervallo tra <espressione>2 e <espressione>3 a partire da <espressione>2 con passo <espressione>4 (il passo si assume positivo). Se il valore di <espressione>2 è maggiore di quello di <espressione>3 il valore della sommatoria è zero. Si vuole uno schema discendente deterministico che generi il codice per il linguaggio detto. Si assume che <espressione>2, <espressione>3, <espressione>4 non contengano l'identificatore <variabile>, mentre <espressione>1 potrà contenerlo. Si vuole che il codice ricalcoli l'espressione <espressione>1 a ogni iterazione solo se <espressione>1 usa l'identificatore <variabile>.

Esempi: sum a + i * i for i from 1 to 5 by 2 endsum

che valuterà al valore di 3 * a + 35

sum a + b for i from 1 to 1 0 by 2 endsum

che valuterà al valore di 5 * (a + b)
 
 


 
 
Ultimo aggiornamento 3 Maggio 1999