b'\n_START_ARTICLE_\nShadowing\n_START_PARAGRAPH_\nIn informatica e in particolare in programmazione, lo shadowing \xc3\xa8 la regola di visibilit\xc3\xa0 secondo la quale una variabile locale \xe2\x80\x9cnasconde\xe2\x80\x9d, all\'interno di un blocco, una variabile con lo stesso nome definita nel blocco superiore._NEWLINE_I programmi possono essere strutturati in blocchi, e i blocchi possono essere tra loro annidati (contenuti uno nell\'altro). Ciascun blocco pu\xc3\xb2 contenere delle dichiarazioni di variabili, definite tramite i propri identificatori. Se una variabile di un blocco pi\xc3\xb9 interno ha lo stesso nome (stesso identificatore) di una variabile in un blocco pi\xc3\xb9 esterno, quest\'ultima viene tenuta "nascosta" dall\'omonima variabile del blocco pi\xc3\xb9 interno fino a quando questo non ha terminato la propria esecuzione._NEWLINE_Si veda il seguente esempio scritto in pseudocodice:_NEWLINE__NEWLINE_ 1  <begin blocco 1>_NEWLINE_ 2      var x\xe2\x86\x9011               /* qui la variabile x vale 11 */_NEWLINE_ 3      <begin blocco 1.1>_NEWLINE_ 4          var x\xe2\x86\x9022         /* qui la variabile x vale 22 */_NEWLINE_ 5          var x\xe2\x86\x90(x + 1)      /* qui la variabile x vale 23 */_NEWLINE_ 6          <begin blocco 1.1.1>_NEWLINE_ 7              var x\xe2\x86\x9033     /* qui la variabile x vale 33 */_NEWLINE_ 8          <end blocco 1.1.1>_NEWLINE_ 9          stampa x           /* qui la variabile x vale 23 */_NEWLINE_10      <end blocco 1.1>_NEWLINE_11      stampa x               /* qui la variabile x vale 11 */_NEWLINE_12  <end blocco 1>_NEWLINE_Tutte le variabili dei 3 blocchi hanno lo stesso nome (stesso identificatore), ovvero "x". La variabile definita nel blocco pi\xc3\xb9 esterno (blocco 1) ha valore 11. Appena viene creato il blocco 1.1, quando al suo interno viene definita una nuova variabile "x" (variabile locale rispetto al blocco 1.1) il valore della variabile x esterna appartenente al blocco 1 viene "offuscato" dal valore 22 della nuova variabile locale, secondo la regola dello shadowing. Ecco, quindi, che x assume il valore 22 in riga 4 e il valore 23 in riga 5. Il valore della variabile x del blocco 1, per\xc3\xb2, rimane 11, in quanto i cambiamenti vengono effettuati unicamente sulla variabile interna al blocco 1.1. Con la stessa regola dello shadowing, nel blocco 1.1.1 una nuova variabile locale con lo stesso identificatore "x" va ad offuscare le variabili "x" pi\xc3\xb9 esterne. In riga 7, il valore 33 \xc3\xa8 riferito alla variabile locale del blocco 1.1.1. In riga 9, la regola dello shadowing fa in modo che x assuma il valore 23, perch\xc3\xa9 \xc3\xa8 la "x" interna al blocco 1.1 (il blocco 1.1.1 \xc3\xa8 stato chiuso alla riga precedente). Per concludere, in riga 11 viene stampato il valore 11, perch\xc3\xa9 riferito alla x pi\xc3\xb9 esterna, ovvero quella creata nel blocco 1.'