Ada/Tipi

Wikibooks, manuali e libri di testo liberi.
< Ada
Jump to navigation Jump to search

I tipi in Ada[modifica]

Ada types.png

Questa pagina è uno stub Questo modulo è solo un abbozzo. Contribuisci a migliorarlo secondo le convenzioni di Wikibooks

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]

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 e Positive 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 sottoforma 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 chiamati Wide_Character e presenti dalla versione Ada95 ed infine a 32 bit e chiamati Wide_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 e True.