Es kommt irgendwie auf die Sprache an.
Zum Beispiel, in Sprachen wie C und C ++, haben Sie eine Reihe von integrierten in skalare Typen - int
, float
, double
, char
, etc. Diese „primitive“ in dem Sinne, dass sie nicht in einfachere Komponenten zerlegt werden können. Aus diesen Basistypen können Sie neue Typen definieren - Zeigertypen, Arraytypen, Strukturtypen, Vereinigungstypen usw.
Dann haben Sie eine Sprache wie Lisp der alten Schule, in der alles entweder ein Atom oder eine Liste ist . Wiederum ist nach der obigen Definition ein Atom "primitiv" in dem Sinne, dass es nicht in etwas Einfacheres zerlegt werden kann.
Bearbeiten
Soweit es mich betrifft, sind die Begriffe "primitiv", "grundlegend" und "eingebaut" ziemlich austauschbar. Wenn Sie jedoch wirklich umständlich sein möchten , können Sie zwischen Typen unterscheiden, die "eingebaut" sind (die explizit durch die Sprachdefinition bereitgestellt werden), und Typen, die von den eingebauten Typen abgeleitet sind, die noch "primitiv" oder "einfach" sind. , dass sie nicht in einfachere Elemente zerlegt werden können. C'stypedef
Mit dieser Funktion können Sie neue Typnamen für vorhandene Typen erstellen. Mit Ada können Sie neue Skalartypen mit Einschränkungen erstellen. Sie können beispielsweise einen Latitude-Typ vom integrierten Floating-Typ ableiten, wobei die Einschränkung gilt, dass Werte außerhalb des Bereichs [-90.0, 90.0] nicht zulässig sind. Es ist immer noch ein primitiver oder grundlegender Typ, da es nicht in einfachere Komponenten zerlegt werden kann. Da es jedoch benutzerdefiniert ist, wird es nicht als "eingebauter" Typ betrachtet.
Auch diese Konzepte sind ein wenig verschwommen, und es kommt wirklich auf den Kontext an. Zum Beispiel ist der Begriff eines "eingebauten" Typs für eine typenlose Sprache wie BLISS bedeutungslos.