Le risorse (costanti, variabili, sottoprogrammi, …) che un programma utilizza diventano presto centinaia e difficili da gestire.
Risorse globali
Sequenzialità |
Il sottoprogramma P1 ha accesso alle risorse globali a e b. Il blocco principale ha accesso alle risorse locali a, b e P1. |
![]() |
Il sottoprogramma P1 ha accesso alle risorse globali a e b. Il sottoprogramma P2 ha accesso alle risorse globali a, b e P1. Il blocco principale ha accesso alle risorse locali a, b, P1 e P2. Il sottoprogramma P1 non ha accesso alla risorsa P2. |
![]() |
|
Risorse locali
Regola gerarchica |
Il sottoprogramma P1 ha accesso alle risorse
Il sottoprogramma P2 ha accesso alle risorse
Il blocco principale ha accesso alle risorse locali a, b, P1 e P2. Il sottoprogramma P2 non ha accesso alla risorsa locale X in P1. |
![]() |
Omonimie | Il sottoprogramma P1 ha accesso alle risorse
Il sottoprogramma P2 ha accesso alle risorse
Il blocco principale ha accesso alle risorse locali a, b, P1 e P2. La X di P1 e la X di P2 sono due risorse diverse. |
![]() |
Il sottoprogramma P1 ha accesso alle risorse
Il sottoprogramma P2 ha accesso alle risorse globali: a, b e P1. La risorse locale a in P1 nasconde la risorsa globale a con lo stesso nome che diventa irraggiungibile. |
![]() |
|
Passaggio dei parametri | Il sottoprogramma P1 ha accesso alle risorse
Il sottoprogramma P2 ha accesso alle risorse
Il blocco principale ha accesso alle risorse locali a, b, P1 e P2. La risorsa p in P1 è un parametro formale che assume il valore del parametro attuale all’atto della chiamata. |
![]() |
Il sottoprogramma P1 ha accesso alle risorse
Il sottoprogramma P2 ha accesso alle risorse
Il blocco principale ha accesso alle risorse locali a, b, P1 e P2. La risorsa p in P1 è un parametro formale che fa riferimento alla variabile associata all’atto della chiamata (il parametro attuale). |
![]() |
|
Ricorsione | Il sottoprogramma P1 ha accesso alle risorse
Il sottoprogramma P2 ha accesso alle risorse
Il blocco principale ha accesso alle risorse locali a, b, P1 e P2. |
![]() |