Analisi Statica

Esercizio 7

Si considerino programmi consistenti di una sequenza di dichiarazioni di procedura. Le procedure possono avere parametri tutti di un medesimo unico tipo. Il corpo di una procedura consiste di una dichiarazione di dati locali (tutti dell'unico tipo assunto) e di una sequenza di istruzioni che possono essere lettura di una sequenza di variabili, stampa di una sequenza di variabili, assegnamento a una variabile di una variabile o di somma di variabili, chiamata di procedura, composizione di istruzioni, costrutto for (con variabili per base, limite e incremento dell'indice).

Si suppone che le chiamate siano fatte a procedure dichiarate prima nel programma e che i parametri siano passati per riferimento.

L'ultima procedura della sequenza è il programma principale. Si vuole uno schema deterministico discendente che segnali come attributo del programma se ci sono for il cui corpo modifica la variabile di controllo.
 
 

Esempio: 

procedure pippo(v,w);
  var a;
   v := v + 1
   a := v + w
end;
procedure Main();
   var c,d,e,f,i;
   input c,d,e,f; 
   for i from c to d by
       do begin 
                  c := c + i; 
              call pippo (i,f) 
            end
    output c
end


 
 
 
  
Ultimo aggiornamento 3 Maggio 1999