To zależy od języka.
Na przykład w językach takich jak C i C ++, masz kilka wbudowanych typów skalarnych - int
, float
, double
, char
, itd. Są to „prymitywny” w tym sensie, że nie można rozłożyć na prostsze składniki. Z tych podstawowych typów można zdefiniować nowe typy - typy wskaźników, typy tablic, typy struktur, typy związków itp.
Potem masz taki język jak oldschoolowy Lisp, gdzie wszystko jest albo atomem, albo listą . Ponownie, zgodnie z powyższą definicją, atom jest „prymitywny” w tym sensie, że nie można go rozłożyć na coś prostszego.
Edytować
Jeśli chodzi o mnie, terminy „prymitywne”, „podstawowe” i „wbudowane” są prawie wymienne. Jeśli jednak chcesz być naprawdę pedantyczny, możesz rozróżnić typy „wbudowane” (te wyraźnie podane w definicji języka) od typów pochodnych z typów wbudowanych, które są nadal „prymitywne” lub „podstawowe” przez to, że nie można ich rozłożyć na prostsze elementy. Ctypedef
Funkcja umożliwia tworzenie nowych nazw typów dla istniejących typów. Ada pozwala tworzyć nowe typy skalarne, które mają ograniczenia. Na przykład można uzyskać typ Latitude z wbudowanego typu zmiennoprzecinkowego, z tym, że nie może on przyjmować wartości spoza zakresu [-90,0, 90,0]. Nadal jest to prymitywny lub podstawowy typ, ponieważ nie można go podzielić na prostsze komponenty, ale ponieważ jest zdefiniowany przez użytkownika, nie jest uważany za typ „wbudowany”.
Ponownie, te pojęcia są trochę niewyraźne i naprawdę zależy od kontekstu. Na przykład pojęcie typu „wbudowanego” jest bez znaczenia dla języka bez typu, takiego jak BLISS.