Main /

Data Types

Wiki_System*

technolowiki.org

[-edit SideBar-]

Data Types

Classification of Types (Kinds)

  • Data (Value) Types
  • Structure (Composite) Types
  • Class (Program) Types
    • Interface, Behavior (in C++: an abstract class) > NOT instantiable
      • Pure Abstract (in C#: required for multiple inheritance)
    • Implementation (in C++: a class with concrete methods, instantiation leads to an object)
      • Extensible, Inheritable (in C#: not sealed)
  • Operators (functions transforming an input value into a result value)
    • Alternative
    • Associative (eg. "+(+)" or "*(*)" for real numbers)
    • Commutative (eg. "+" for real numbers) / Anticommutative (eg. "-" for real numbers or "" for vectors)
    • Distributive (eg. "+(*)" or "*(+)" for real numbers)
  • Magmas (Groupoids)
    • Unital (eg. having a "1" element)
    • Invertible (eg. having a division operator)

Classification of Entities

  • primitive types
    • scalars, real numbers > FScalars
      • whole numbers > exact numbers
        • whole positive (unsigned) numbers > FNaturals
          • booleans (1 bit) > FNegatables
          • trits (nullable bit)
          • nibble (4 bits)
          • byte/octet (8 bits)
          • word/short (16 bits)
          • double word/long (32 bits)
          • quad word/long long (64 bits)
          • octo word (128 bits)
        • whole signed numbers > FNegatables
      • fractional numbers – as these are mostly signed: > FNegatables
        • exact numbers > fractional numbers
          • fixed-point numbers
          • rational numbers, quotients
        • floating-point numbers (approximating)
    • composites (akin to fixed-size arrays)
      • two-dimensionals
        • Complex, Tuples (a,b)
          • coordinates
            • Point (x,y) shaped, but NOT intersectable
            • Size (w,h) summable
          • intervals, ranges (ordered, b>a) > IIntersectable
      • three-dimensionals
      • four-dimensionals
        • Quaternions
      • eight-dimensionals
        • Octonions
      • sixteen-dimensionals
        • Sedenions

TODO: Rectangle

Classification of/Reasons for Nulls

  • Null (no value)
    • Empty (uninitialized, JavaScript: undefined)
      • Optional (parameter, JavaScript: unspecified)

Classification of References

  • addresses
    • pointers (represented by whole positive numbers, with 0 meaning "invalid", > sometimes incrementable )
    • offsets (represented by whole numbers) > incrementable, summable
  • Handles (represented by whole positive numbers, with -1 meaning "invalid", sometimes > marshalable, but > NOT incrementable// )

Classification of Structures

  • arrays, buffers > constant-time randomly accessible, sequentially accessible, SOME fixed-size
    • one-dimensional arrays > one-dimensional
      • ring buffers > constant-time shiftable
      • two-dimensional arrays > two-dimensional, multi-dimensional
        • matrices
    • lists > sequentially accessible, constant-time insertable, constant-time shiftable, one-dimensional
      • single linked lists
      • double linked lists
    • hash tables > randomly accessible, constant-time insertable, near-constant-time searchable (also logarithmic-time searchable), constant-time shiftable

Classification of ...

  • datetime
    • ordered arrays > logarithmic-time searchable
    • collections
    • containers
    • skip lists > near-constant-time randomly accessible
    • stacks > sequentially accessible
    • queues > sequentially accessible, constant-time shiftable
      • double-ended queues
    • graphs

Classification of Hybrids

** unrolled linked lists

Further Reading on Types

Survey of Floating-Point Formats

Recent Changes (All) | Edit SideBar Page last modified on March 02, 2011, at 02:40 PM Edit Page | Page History
Powered by TechnoloWiki