In informatica e programmazione, la tipizzazione dinamica è la politica di tipizzazione, ovvero di assegnazione di tipi alle variabili, in cui il controllo del tipo della variabile è effettuato a runtime piuttosto che in fase di compilazione.
Nei contesti a tipizzazione dinamica forte, i valori assegnati alle variabili hanno dei tipi ben definiti, mentre in contesti di tipizzazione dinamica debole, le variabili possono riferirsi a valori di qualsiasi tipo, che possono cambiare dinamicamente in seguito a manipolazioni esterne.
Il caso più comune è dato dai linguaggi a tipizzazione dinamica, in cui le variabili hanno tipi che possono cambiare durante l'esecuzione di un programma, di solito a causa di assegnamenti. Per la natura fortemente imprevedibile, i linguaggi a tipizzazione dinamica sono spesso anche interpretati, in quanto l'interprete costituisce un ambiente di esecuzione sicuro, in grado di assecondare tutti i cambiamenti di tipo delle variabili.
Esempi di linguaggi a tipizzazione dinamica sono APL, Erlang, Groovy, JavaScript, TypeScript, Lisp, Lua, MATLAB, GNU Octave, Perl[1], PHP, Prolog, Python, Ruby, Smalltalk e Tcl.
Note
[modifica | modifica wikitesto]- ^ Unicamente per i tipi definiti dall'utente.
Bibliografia
[modifica | modifica wikitesto]- (EN) Tratt, Laurence, Dynamically Typed Languages, Advances in Computers, Vol. 77, pp. 149–184, luglio 2009