Это зависит от языка.
Например, в таких языках , как C и C ++, у вас есть несколько встроенных скалярные типы - int
, float
, double
, char
и т.д. Они являются «примитивными» в том смысле , что они не могут быть разложены на более простые компоненты. Из этих основных типов вы можете определить новые типы - типы указателей, типы массивов, типы структур, типы объединения и т. Д.
Тогда у вас есть язык наподобие старой школы Lisp, где все является либо атомом, либо списком . Опять же, согласно приведенному выше определению, атом является «примитивным» в том смысле, что он не может быть разложен в нечто более простое.
редактировать
Насколько мне известно, термины «примитив», «базовый» и «встроенный» в значительной степени взаимозаменяемы. Однако, если вы хотите стать действительно педантичным, вы можете различать «встроенные» типы (те, которые явно определены в определении языка) и типы, полученные из встроенных типов, которые все еще являются «примитивными» или «базовыми». в том, что они не могут быть разложены на более простые элементы. Кассиопеянеtypedef
средство позволяет создавать новые имена типов для существующих типов. Ада позволяет вам создавать новые скалярные типы, которые имеют ограничения на них. Например, вы можете получить тип Latitude из встроенного плавающего типа с ограничением, которое не может принимать значения за пределами диапазона [-90.0, 90.0]. Это все еще примитивный или базовый тип в том смысле, что его нельзя разбить на более простые компоненты, но, поскольку он определяется пользователем, он не считается «встроенным» типом.
Опять же, эти понятия немного размыты, и это действительно зависит от контекста. Например, понятие «встроенный» тип не имеет смысла для такого типа языка, как BLISS.