Ada/Tipi
Aspetto
< Ada
I tipi in Ada
[modifica | modifica sorgente]
Il sistema di tipizzazione di Ada si riassume in 4 principi:
- Tipizzazione stretta: i tipi di dati sono incompatibili fra loro. Ci sono comunque varie metodologie per convertire fra tipi di dato;
- Tipizzazione statica: il type checking avviene in fase di compilazione e questo consente al complilatore di individuare errori nell'uso dei tipi di dato;
- Astrazione: types represent the real world or the problem at hand; not how the computer represents the data internally. There are ways to specify exactly how a type must be represented at the bit level, but we will defer that discussion to another chapter.
- Equivalenza nei nomi: all'opposto di quella strutturale usata in altri linguaggi, la tipizzazione in Ada è basata sull'equivalenza dei nomi dei tipi di dato. Due tipi sono compatibili solamente se hanno lo stesso nome o la stessa radice. Non è sufficiente che abbiano la stessa rappresentazione interna. Il programmatore può dichiarare due tipi di intero che hanno lo stesso range e mantenere i due tipi di dato incompatibili, così come due record aventi campi identici eppure non compatibili fra loro.
Ada consente di dichiarare dei 'sottotipi di un tipo di dato che sono dei tipi di dato derivati da quello specificato. I tipi ed i sottotipi sono compatibili fra loro.
Tipi di dato predefiniti
[modifica | modifica sorgente]Sebbene Ada fornisca diversi tipi di dato predefiniti è pratica comune quella dei programmatori di definirsi i propri tipi di dato specifici. I tipi di dato predefiniti, forniti nella libreria standard del linguaggio, sono
- Integer
- La dimensione di un intero dipende dalla piattaforma ma in ogni caso copre un intervallo minimo di .. (RM 3.5.4 (21) (Annotated)). Lo standard definisce, per il tipo Integer, due sottotipi che sono
Natural
ePositive
che rappresentano rispettivamente i numeri naturali (non negativi) ed i positivi (maggiori di zero); - Float
- Ada fornisce una implementazione molto debole dei numeri a virgola mobile. Il programmatore è chiamato a definirsi un suo tupo a virgola mobile specificandone la precisione e l'intervallo.
- Duration
- Si tratta di un tipo di dato a virgola fissa usato per i calcoli relativi al tempo. Rappresenta il tempo sotto forma di secondi.
- Character
- I caratteri sono rappresentati in Ada come enumerazioni. I caratteri predefiniti sono ad 8 bit e chiamati
Character
e presenti dalla versione Ada83, a 16 bit e chiamatiWide_Character
e presenti dalla versione Ada95 ed infine a 32 bit e chiamatiWide_Wide_Character
e presenti da Ada2005. - String
- Le stringhe sono degli
array
di Character. La libreria standard del linguaggio contiene moduli per la gestione di vari formati di stringhe. - Boolean
- Poiché Ada è un linguaggio a tipizzazione stretta, il booleano è rappresentato come enumerazione di
False
eTrue
.