Come sono le astrazioni delle variabili per le celle di memoria della macchina? Perché è possibile modificare il valore memorizzato nella cella di memoria assegnando un valore diverso alla variabile associata a detta cella di memoria?
Come sono le astrazioni delle variabili per le celle di memoria della macchina? Perché è possibile modificare il valore memorizzato nella cella di memoria assegnando un valore diverso alla variabile associata a detta cella di memoria?
In molti linguaggi di programmazione, le variabili forniscono due principali astrazioni:
Per spiegare un po 'il primo punto: una variabile che contiene un intero a 32 bit (per esempio) può essere vista come 4 byte di memoria contigua e fissa di una macchina, cioè un modello mentale utile che si adatta a molte programmazioni lingue e molti contesti. In realtà, tuttavia, il compilatore, l'ambiente di runtime, il sistema operativo o l'hardware mappano i dati da qualche altra parte, lo ottimizzano o lo spostano tra diversi punti della memoria o diversi livelli di memoria. Questo vale anche per le variabili "di sola lettura" per le quali non è possibile "assegnare un valore diverso" dopo la loro prima inizializzazione.
La seconda astrazione si spera autoevidente. Le posizioni di memoria non hanno nomi ragionevoli, hanno indirizzi. I registri della CPU hanno spesso nomi, ma questi nomi non hanno alcuna relazione con la semantica associata ai dati nel contesto di un programma specifico. Quindi nomi di variabili astratti da quegli indirizzi o nomi di registro della CPU.
Leggi altre domande sui tag abstraction