Julia jargon/terminology definitions - please check!

I am not sure these definitions are correct, so can you help me in checking them? Tk!

  • primitive type: A type defined with the “primitive type” keyword. Objects of a primitive type have a given fixed memory size specified in the type definition
  • composite type: A type defined with the “struct” keyword. Composite types are formed by zero or more fields referencing other objects (of primitive or composite type).
  • singleton: An object instantiated from a composite type formed by zero fields
  • abstract type: A type defined with the “abstract type” keyword. Abstract types have no fields and objects can not be instantiated from them. Further, they can not be declared child of a concrete type.
  • concrete type: A primitive or composite type
  • mutable type: A composite type defined with the “mutable struct” keyword. Mutable types can have their fields rebinded to other objects than those associated at the time of initialisation
  • immutable type: All types except those defined with “mutable struct”.
  • parametric type: A family of (mutable or immutable) composite or abstract types with the same fields names and type name net of the parameters’ types. The individual type is then uniquely identified with the name of the parametric type and the type(s) of the parameter(s)
  • container: A composite type (not necessarily mutable) designed to reference a variable number of objects and which provides methods to access, iterate and eventually mutate the reference to other objects.
  • predefined types: A type whose definition is provided in Julia Base or in the Julia Standard Library
  • bits type: A primitive or immutable composite type whose fields are all bits type themselves

EDITED according to the comments of @mauro3, added bits type

2 Likes

Composite types are formed by zero or more other types

Replace “types” by “fields”. Also relevant to singleton.

Synonymous: “concrete type”

No:

ulia> isprimitivetype(Int)
true

julia> isconcretetype(Int)
true

parametric type

Abstract types can also be parameteric.

1 Like

Added:

  • bits type a primitive or immutable composite type whose fields are all bits type themselves