La conversione del tipo è una forma di tipo punning, una tecnica utilizzata nell’informatica e nella programmazione di software per computer in cui il tipo di dati di un’entità specifica viene modificato in un tipo di dati diverso. Il concetto di gioco di parole è nato per aggirare il sistema di tipi specificato di un linguaggio di programmazione in modo da poter ottenere determinati effetti che altrimenti sarebbero difficili da realizzare entro i confini della definizione formale del linguaggio di programmazione. La conversione del tipo, essendo la forma più comune di tipo punning, è possibile praticamente in tutti i linguaggi di programmazione, sebbene alcuni linguaggi offrano metodi aggiuntivi di tipo punning, come l’unione o la reinterpretazione. Alcune guide di stile di programmazione suggeriscono di non usare il tipo di gioco di parole, anche se la conversione di tipo viene comunque utilizzata frequentemente.
La conversione del tipo viene talvolta definita anche typecasting o coercizione, a seconda del linguaggio di programmazione utilizzato. Ogni linguaggio di programmazione ha regole su come utilizzare con successo la conversione del tipo. In generale, le conversioni possono avvenire su tipi o oggetti fondamentali.
Esistono diversi tipi di dati fondamentali o classi di tipi di dati. Un tipo di dati comune utilizzato nelle operazioni matematiche sono gli interi, o numeri semplici, che possono variare tra migliaia o milioni, a seconda del numero di bit nella loro larghezza. Ad esempio, un numero intero a 32 bit può variare da zero a 4,294,967,295 o da -2,147,483,648 a 2,147,483,648. Un altro tipo è il numero a virgola mobile, che è praticamente qualsiasi numero con un punto decimale.
Come tipo di dati possono essere utilizzati anche caratteri singoli, come una lettera dell’alfabeto o un segno di punteggiatura. Un tipo di dati stringa è qualsiasi gruppo o sequenza di numeri e/o lettere senza interruzioni; le lunghezze delle stringhe sono arbitrarie, ma la loro dimensione o limite è solitamente definito nel linguaggio di programmazione. Il più vecchio dei tipi di dati è il booleano, che è semplicemente vero o falso. Altre classi di tipi includono algebrico, funzioni, dati macchina e oggetti. Ad esempio, nei linguaggi orientati agli oggetti, l’antenato di un oggetto può utilizzare il tipo di un oggetto genitore in modo che le loro interazioni reciproche siano più fluide.
Le specifiche della conversione del tipo in realtà non entrano in gioco finché non vengono prese in considerazione le regole di un particolare linguaggio di programmazione. Alcune regole del linguaggio determinano inoltre se una conversione di tipo è implicita o esplicita. Una conversione di tipo implicita è più frequentemente chiamata coercizione e di solito ha luogo nel momento in cui un programma viene compilato dal codice sorgente in un programma eseguibile. Ciò può accadere, ad esempio, se vengono utilizzati più tipi di dati in un’espressione e quindi viene eseguito un confronto. La conversione del tipo è considerata implicita e il compilatore la gestisce automaticamente; una conversione di tipo esplicita è definita nel codice del programma. Il linguaggio di programmazione C fa una distinzione tra i due, chiamando una conversione di tipo implicita una coercizione e una conversione di tipo esplicita un cast.
Un semplice esempio di conversione di tipo comune sarebbe operazioni matematiche sui numeri in un programma per computer. Un programma per computer che riceve un numero decimale, un tipo di dati a virgola mobile, come input potrebbe dover convertire il numero in un tipo di dati intero per eseguire operazioni matematiche o viceversa. Questa conversione consente il proseguimento dell’operazione.