Type system

Ogni linguaggio di programmazione ha il suo type system, ovvero le informazioni e le regole che gestiscono i propri tipi e valori. Per la precisione, un type system possiede:

Tipi primitivi (o di base)

I tipi primitivi sono tutti i tipi che definiscono valori notevoli del linguaggio. Tutti i linguaggi adoperano sintassi differenti.

Unit and Void types

Il tipo base più semplice è il tipo Unit, che contiene un solo elemento (tipo l’insieme singoletto). Un ruolo simile lo svolge il tipo Void, presente in alcuni linguaggi come il C, che però si differenzia dal tipo Unit poiché non può essere passato come parametro.

Booleani

I tipi booleani denotano valori logici, ovvero true e false. Le operazioni consentite sono le solite operazioni logice (And, Or, ecc). Quando il tipo è presente (ad esempio in ANSI C non c’è), i valori sono denotabili, esprimibili ed è possibile memorizzarli. Nonostante basterebbe un bit per rappresentare in memoria il tipo bool, lo spazio effettivo dipende dall’implementazione del linguaggio (ad esempio in Rust occupano 1 byte, mentre in Java 2).

Carattere (char)

Il tipo carattere indica tutti i caratteri di un dato set di simboli (set definito al livello del linguaggio). Anch’esso comprende sia i valori veri e propri (di solito i set più usati sono ASCII e UNICODE) che le operazioni possibili, come i confronti.

I valori sono denotabili, esprimibili e memorizzabili. Di solito la rappresentazione in memoria occupa uno o due byte.

Interi

Il tipo intero denota un range di numeri interi (duh!), di solito include: