Valore (informatica)

Da Wikipedia, l'enciclopedia libera.

In informatica, un valore può essere un numero una stringa, un array o qualunque altra cosa che può essere utilizzata come se fosse un numero. D'altra parte, etichette, funzioni, tipi di dato, ereditarietà e strutture di controllo non sono, in generale, valori, nonostante la loro definizione vari a seconda dei linguaggi di programmazione. Variabili e funzioni sono la maggior parte delle volte trattate come se fossero valori.

La distinzione tra valore e oggetto è sottile, ma si può affermare che gli oggetti includono una memoria privata a cui si può accedere solo tramite references mentre i valori sono indipendenti dal contenitore e sono solo pubblici. Ad esempio, le reference sono comunemente espresse tramite valori, soprattutto come un puntatore nel C. In C le reference agli oggetti possono essere rappresentate tramite una struttura che contenga un puntatore void la cui struttura bersaglio sia invisibile al codice cliente; il puntatore void si riferisce ad un oggetto.

L'uso del termine è utile per chiarire l'esatto significato di assegnamento, copia, e comparazione degli oggetti. Nel modello a valore, ad esempio, uno stesso oggetto può essere copiato piuttosto che essere referenziato: è trattato in questo caso come se fosse un numero.

In C: L-value e R-value[modifica | modifica sorgente]

Alcuni linguaggi utilizzano l'idea di l-value e r-value. L-values sono valori che hanno indirizzi, che significa che sono variabili o references che si riferiscono ad un certo indirizzo. R-value sono sia l-value o non-l-value — un termine utilizzato solo per distinguerli dal l-value. In C, il termine l-value in origine significava qualcosa che avrebbe potuto essere assegnato (nella convenzione da sinistra a destra, si indicava il lato sinistro dell'operatore = ), ma dal momento che è stato aggiunta la parola riservata 'const' al linguaggio, questo comportamento viene oggi denominato un 'l-value modificabile'.

Un l-value è un'espressione che designa (si riferisce a) un oggetto. Un l-value non modificabile è indirizzabile, ma non assegnabile. Un l-value modificabile permette all'oggetto riferito di essere sia cambiato che esaminato. Un r-value è un'espressione che non è un l-value, si riferisce a valori di dati che sono immagazzinati in memoria.

In assembly[modifica | modifica sorgente]

In assembly un valore può essere virtualmente qualunque tipo di dato di un dato tipo, come ad esempio una stringa, una cifra, una singola lettera.

In questo linguaggio vi è qualcosa conosciuto come "valore immediato", qualcosa di "immediato"; alle volte vi si può riferire come "imm#" dove # è un numero che indica la grandezza del valore immediato, così che imm8 si riferisce ad un valore immediato di un byte. Un valore immediato è un numero, sia scritto in cifre o come stringa "mnemonica 'A'" che equivale a "mnemonico 0x64"; il byte order delle stringhe è diverso a seconda dell'assembly e dell'architettura utilizzata.

Collegamenti esterni[modifica | modifica sorgente]

Informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica