Variabile (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 15:
 
* In [[assembly]] si trova il tipo più elementare di variabile: il '''registro''', un contenitore di dati elementari interno al [[CPU|processore]] atto a contenere quelle informazioni numeriche che il processore stesso è in grado di manipolare direttamente alla massima velocità di processamento. Le uniche operazioni applicabili sui registri, sempre disponibili in numero molto limitato, sono quelle stabilite dal [[assembly|linguaggio macchina]] messo a disposizione dal processore stesso, quali assegnamento diretto o indiretto, test elementari, operazioni logiche o booleane. Solitamente l'[[assembler]] mette a disposizione del [[programmatore]] alcune caratteristiche di più alto livello, per facilitare la stesura del programma. Ad esempio, è possibile usare delle variabili o delle etichette: in questo caso, una variabile identifica un'area di memoria di una certa dimensione, non strettamente legata al [[tipo di dato]] che ospita, che accetta alcune operazioni elementari come la lettura, l'assegnamento, semplici operazioni logiche o aritmetiche. Una cella di memoria può essere opzionalmente identificata da una etichetta (detta anche ''label''), allo scopo di creare una semplice associazione mnemonica; resta tuttavia la possibilità di accedere ai suoi contenuti direttamente, mediante il proprio indirizzo.
 
* In linguaggi che mantengono uno stretto legame con l'architettura [[hardware]], come il [[linguaggio C|C]], o il [[C++]] per i tipi di dati elementari, le variabili sono caratterizzate da un [[tipo di dato|tipo]], che limita le operazioni che possono essere fatte con la variabile dichiarata, e specializza la semantica degli [[operatore (informatica)|operatori]]. Ad esempio, l'espressione <tt>a+b</tt> può essere valutata in modo diverso se <tt>a</tt> e <tt>b</tt> sono numeri interi oppure numeri in virgola mobile. È comunque possibile ottenere l'indirizzo di una variabile (per costruire un [[puntatore (programmazione)|puntatore]]), e quindi manipolare manualmente l'utilizzo della memoria fatto dal [[compilatore]].
 
* In linguaggi che offrono un maggiore livello di astrazione, come [[Linguaggio di programmazione Java|Java]], la variabile è tipizzata, ma il nome della variabile è l'unico modo per accedere ai dati in essa memorizzati, e non è possibile conoscere l'indirizzo in cui è stata memorizzata. Una variabile di [[struttura dati|tipo complesso]] è in realtà sempre un [[puntatore (programmazione)|riferimento]] a un'area di memoria allocata dinamicamente che viene gestito dal linguaggio.
 
* Nei più semplici [[linguaggio di scripting|linguaggi di scripting]] [[interprete (informatica)|interpretati]], le variabili sono, di norma, solo semplici identificatori privi di un tipo e una dimensione definita. Lo spazio di memoria è allocato dinamicamente al momento dell'assegnamento.