Tipizzazione forte: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 151.48.35.32 (discussione), riportata alla versione precedente di Hellis
Etichetta: Rollback
Eliminata inesattezza sul linguaggio C
Riga 11:
* impossibilità di eseguire [[conversione di tipo|conversioni di tipo]] implicite;
 
Un esempio limite di linguaggio debolmente tipizzato è il [[linguaggio macchina]], in cui un'area di [[memoria (informatica)|memoria]], rappresentata nel codice da un [[indirizzo di memoria]], può essere usata indifferentemente per contenere valori di qualunque tipo, numeri interi, numeri con la virgola, caratteri, e così via. I [[linguaggio di programmazione ad alto livello|linguaggi di programmazione ad alto livello]] tendono ad avere [[sistema dei tipi|sistemi dei tipi]] più sicuri e quindi ad avvicinarsi all'ideale della forte tipizzazione, ma in genere rimangono disponibili meccanismi per trattare dati in modo flessibile che si prestano a essere utilizzati per violare il sistema dei tipi. Per esempio, il [[C (linguaggio)|linguaggio C]] fornisce almeno tre meccanismi che lo qualificano come linguaggio debolmente tipizzato:
 
* le operazioni di ''[[Conversione di tipo|casting]]'', che consentono di forzare l'interpretazione di un qualunque valore secondo un qualunque tipo (anche un tipo diverso da quello a cui il valore è stato precedentemente associato);
* i [[puntatore (programmazione)|puntatori]] a ''void'', che godono di conversione di tipo implicita verso qualunque altro tipo puntatore;
* le ''[[union (C)|unioni]]'', che consentono di interpretare una collezione di dati correlati secondo diverse attribuzioni di tipo indipendenti.
 
{{Portale|Informatica}}