In un certo senso dipende dalla lingua.
Ad esempio, in linguaggi come C e C ++, si dispone di un certo numero di tipi predefiniti scalari - int
, float
, double
, char
, ecc Questi sono "primitiva", nel senso che essi non possono essere scomposti in componenti più semplici. Da questi tipi di base è possibile definire nuovi tipi: tipi di puntatore, tipi di matrice, tipi di struttura, tipi di unione, ecc.
Quindi hai una lingua come la vecchia scuola Lisp, in cui tutto è un atomo o un elenco . Ancora una volta, secondo la definizione di cui sopra, un atomo è "primitivo", nel senso che non può essere scomposto in qualcosa di più semplice.
modificare
Per quanto mi riguarda, i termini "primitivo", "base" e "incorporato" sono praticamente intercambiabili. Se vuoi diventare veramente pedante, tuttavia, puoi distinguere tra tipi "incorporati" (quelli esplicitamente forniti dalla definizione della lingua) e tipi derivati dai tipi incorporati che sono ancora "primitivi" o "di base" in quanto non possono essere scomposti in elementi più semplici. C ditypedef
La funzione consente di creare nuovi nomi di tipi per tipi esistenti. Ada ti consente di creare nuovi tipi scalari con vincoli. Ad esempio, è possibile derivare un tipo di latitudine dal tipo mobile 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 suddiviso in nessun componente più semplice, ma poiché è definito dall'utente, non è considerato un tipo "incorporato".
Ancora una volta, questi concetti sono un po 'sfocati e dipendono davvero dal contesto. Ad esempio, la nozione di un tipo "incorporato" non ha senso per un linguaggio non tipizzato come BLISS.