Variabile (informatica)
simbolo che associa un nome a un valore Da Wikipedia, l'enciclopedia libera
simbolo che associa un nome a un valore Da Wikipedia, l'enciclopedia libera
Una variabile, in informatica, è un contenitore di dati situato in una porzione di memoria (una o più locazioni di memoria) destinata a contenere valori, suscettibili di modifica nel corso dell'esecuzione di un programma. Una variabile è caratterizzata da un nome (inteso solitamente come una sequenza di caratteri e cifre).
Una costante è un dato non modificabile situato in una porzione di memoria (una o più locazioni di memoria) destinata a contenere un valore, che non può essere appunto modificato nel corso dell'esecuzione di un programma. Una costante può essere caratterizzata da un nome (inteso solitamente come una sequenza di caratteri e cifre).
Nei linguaggi tipizzati, ciascuna variabile è caratterizzata da un tipo di dato, che specifica come deve essere considerato il dato rappresentato, e possibilmente restringe i valori accettabili. Ad esempio una variabile destinata a contenere il numero progressivo di un mese di una data, potrà assumere solo i valori interi da 1 a 12.
L'insieme delle variabili esistenti a tempo di esecuzione è contenuto all'interno dell'ambiente.
La variabile è un identificatore V associato a un insieme prefissato di possibili valori che definiscono il tipo della variabile. L'insieme dei possibili valori definisce il range dei valori che V può assumere durante l'esecuzione di un programma. Definendo il tipo e la rappresentazione della variabile oltre al range di valori, vengono definite anche le operazioni possibili con la variabile stessa. Durante l'esecuzione di un programma ciascuna variabile ha un valore corrente.
Nei linguaggi di programmazione di livello diverso, il concetto di variabile ha sfumature diverse:
a+b
può essere valutata in modo diverso se a
e b
sono numeri interi oppure numeri in virgola mobile. È comunque possibile ottenere l'indirizzo di una variabile (per costruire un puntatore), e quindi manipolare manualmente l'utilizzo della memoria fatto dal compilatore.Nei linguaggi compilati, le variabili devono essere definite ovvero dichiarate in maniera tipizzata prima di essere adoperate, in quanto il compilatore o l'interprete non sa come trattare ovvero non riconosce oggetti sconosciuti ovvero non specificati precedentemente. La dichiarazione consente di raggiungere due fondamentali obiettivi: da un lato, con la dichiarazione tipizzata si specifica il tipo della variabile, cosicché il compilatore è in grado di verificare eventuali errori semantici presenti all'interno di un programma sintatticamente corretto (ad esempio, non è consentito moltiplicare tra loro una variabile stringa e una variabile intera). Dall'altro, viene valutata e definita la quantità di memoria destinata, in fase di esecuzione, a contenere i dati a cui la variabile si riferisce.
Le operazioni basilari che possono essere compiute su una variabile sono la lettura del valore in essa contenuto e la scrittura di un nuovo valore, o assegnamento. Il primo assegnamento della variabile è detto inizializzazione. Molti linguaggi richiedono o preferiscono che la variabile una volta dichiarata venga anche inizializzata a un valore arbitrario.
Dal punto di vista della semantica dei linguaggi di programmazione quando si dichiara tramite un identificativo o nome e si inizializza tramite un certo valore una variabile, il calcolatore riserva un contenitore ovvero un'area di memoria alla suddetta variabile ovvero crea un'associazione indirizzo cella di memoria-valore per tutto il tempo in cui la variabile stessa è attiva. In virtù della definizione di variabile l'associazione suddetta è dinamica ovvero il valore di questa può variare all'interno del flusso di esecuzione del programma comportando una sovrascrittura del valore precedente con quello attuale al punto o tempo t.
Per leggere il contenuto di una variabile v
, cioè per utilizzarlo per qualche scopo del programma, basta impiegarne la sua notazione in un'espressione, come ad esempio in 5+v
o in (3.14+v)*x
.
In molti linguaggi di scripting, per indicare che si vuole leggere il valore di una variabile, bisogna aggiungere un prefisso e/o un suffisso al nome della variabile, come $HOME
negli script di shell su unix, o %HOME%
nei file batch su DOS.
Per assegnare un valore a una variabile, deve essere usato un operatore di assegnamento, ad esempio, in C, a = b + 5
assegna alla variabile a
il risultato dell'espressione b+5
valutata nell'ambiente corrente.
Formalmente, un'espressione che può stare a sinistra di un operatore di assegnamento, ovvero qualcosa in cui può essere scritto un valore, è detta un l-value (contrazione di left-value). Una variabile è l'esempio tipico, ma non l'unico, di l-value. Un'espressione che può essere solo letta o valutata, ma alla quale non è possibile assegnare un valore, è detta r-value.
Il contesto in cui una variabile viene dichiarata all'interno di un programma determina la sua visibilità (o portata o scope). Tutte le variabili visibili a tempo di esecuzione in un certo istante sono contenute nell'ambiente. Se più variabili dello stesso nome e dello stesso tipo vengono dichiarate in contesti diversi, è l'ambiente messo a disposizione dal linguaggio che determina in che modo le variabili sono visibili in ogni momento. Nei linguaggi più diffusi, ad esempio, il nome della variabile fa riferimento alla dichiarazione più specifica, ed esistono strumenti per indicare esplicitamente lo scope a cui si fa riferimento.
Si veda il seguente esempio:
<begin blocco 1> var x:... /* qui è visibile x */ <begin blocco 1.1> var y:... /* qui sono visibili x ed y */ <end blocco 1.1> <begin blocco 1.2> var z:... /* qui sono visibili x e z */ <begin blocco 1.2.1> var y:... /* qui sono visibili x, z e y */ <end blocco 1.2.1> <end blocco 1.2> <end blocco 1>
x
è globale per il blocco 1.1, 1.2 ed 1.2.1.
y
sono locali per ciascuno dei due blocchi, e sono distinte l'una dall'altra: la prima è locale in 1.1 e la seconda in 1.2.1. Infine, z
è globale per il blocco 1.2.1 e locale per il blocco 1.2.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.