Apri il menu principale

Valore (informatica)

entità che può essere utilizzata come se fosse un numero

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-valueModifica

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 è stata 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 assemblyModifica

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 esterniModifica

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