Ciao, ragazzi! Sto facendo una serie di esercizi sullo scope statico e scope dinamico, ma credo di non aver compreso perfettamente la differenza su alcuni punti.
Ad esempio, ho provato a svolgere il seguente esercizio, il più semplice. Potete controllare per favore se ho inserito i valori corretti (nei commenti)?
Questa è la traccia :


Si dica cosa viene stampato dal seguente frammento di codice scritto in uno pseudolinguaggio che usa scope dinamico e passaggio per riferimento.

codice:
{int x = 1;
 int y = 1;
 void pippo(reference int z){
     z = x + y + z;
 }
 {int y = 3;
   {int x = 3;    // Secondo me, questo blocco viene ignorato, perché é mascherato da x = 1; 
   }
   pippo(y);      //  --->  y = 5
   write(y);      //  --->  Stampa a video 1  (ma non ne sono sicura)
 }
 write(y);        //  --->  Stampa 1
}
Inoltre non ho ancora ben capito cosa mi cambia ai fini del risultato se il passaggio avviene per riferimento, anziché per valore, quali valori otterrei? Per me, sempre riferendomi a questo esercizio, il risultato non cambierebbe..