Dipende dalla lingua.
Ad esempio, in linguaggi come C e C ++, hai un numero di tipi scalari incorporati - int
, float
, double
, char
, ecc. Questi sono "primitivi" nel senso che non possono essere scomposti in componenti più semplici. Da questi tipi di base puoi definire nuovi tipi: tipi di puntatori, tipi di array, tipi di struttura, tipi di unione, ecc.
Allora hai una lingua come Lisp vecchia scuola, dove tutto è un atomo o un elenco . Di nuovo, secondo la definizione di cui sopra, un atomo è "primitivo" nel senso che non può essere scomposto in qualcosa di più semplice.
Modifica
Per quanto mi riguarda, i termini "primitivo", "base" e "built-in" sono praticamente intercambiabili. Se si vuole ottenere un pedante veramente , tuttavia, è possibile distinguere tra tipi "built-in" (quelli forniti esplicitamente dalla definizione del linguaggio) e tipi derivati dai tipi built-in che sono ancora "primitivo" o "base" in quanto non possono essere scomposti in elementi più semplici. La funzione typedef
di C consente di creare nuovi nomi di tipi per tipi esistenti. Ada ti consente di creare nuovi tipi di scalari con vincoli su di essi. Ad esempio, è possibile derivare un tipo Latitude dal tipo floating incorporato, con il vincolo che non può assumere valori al di fuori dell'intervallo [-90.0, 90.0]. È ancora un tipo primitivo o di base in quanto non può essere scomposto in componenti più semplici, ma dal momento che è definito dall'utente, non è considerato un tipo "incorporato".
Ancora una volta, questi concetti sono un po 'confusi e dipendono davvero dal contesto. Ad esempio, la nozione di un tipo "built-in" è priva di significato per un linguaggio senza caratteri come BLISS.