Tipizzazione forteIn informatica, e in particolare in programmazione, l'espressione tipizzazione forte (strong typing[1]) può essere usata per caratterizzare il tipo di regole che un determinato linguaggio di programmazione impone, a livello sintattico o semantico, circa la tipizzazione dei dati e all'uso dei dati in relazione al loro tipo. L'opposto della tipizzazione forte è la tipizzazione debole. DescrizioneIn un linguaggio fortemente tipizzato, il programmatore è tenuto a specificare il tipo di ogni elemento sintattico che durante l'esecuzione denota un valore (per esempio un valore costante, una variabile o un'espressione), e il linguaggio garantisce che tale valore sia utilizzato in modo coerente con il tipo specificato: per esempio, non è possibile eseguire una somma aritmetica su dati di tipo stringa. Questo concetto generale può applicarsi con diverse sfumature; a seconda del contesto. Dunque, l'espressione linguaggio fortemente tipizzato può riferirsi a cose leggermente diverse:
Un esempio limite di linguaggio debolmente tipizzato è il linguaggio macchina, in cui un'area di 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 linguaggi di programmazione ad alto livello tendono ad avere 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 linguaggio C fè considerato un linguaggio fortemente tipizzato ma a volte si dice che Java, C#, Ada e Pascal sono più fortemente tipizzati del C in quanto il C supporta anche i seguenti meccanismi:
Il C rimane comunque un linguaggio con tipizzazione statica in quanto i tipi delle variabili devono essere dichiarati al momento della loro definizione, e il tipo viene verificato dal compilatore in fase di compilazione e non durante l'esecuzione. In pratica non avviene la tipizzazione dinamica (una variabile non può cambiare tipo durante l'esecuzione del programma). Note
Collegamenti esterni
|