the
scientific
landscape
 modeling 
system modeling / description representation
 semiotics 
logic &
reasoning
software objects math. objects
categories
relations
objects
wholes, systems, levels
meaning
meta
linguistic
glossary
formalization
& symbol
manipulation
complexity & metrics relations
 ontology 
truth & reality
algebras
Location: http://www.cs.mun.ca/~ulf/gloss/soft.html. By Ulf Schünemann since 2004. Please email me your comments.

Software Objects

Software objects populate software architectures[^] and models of computation[^]

data-related:
abstract datatype (ADT)
variable
(in imperative MOC)

data (in dataflow MOC):
data structure

first class value (in imperative MOC):
concrete datatype value

architecture-related:
component
  • computational agent: processor with ports (in dataflow MOC),
    object with message buffer (in mesg. passing MOC),
    agent with transmitters and receivers (in multiagent MOC)
  • data base
  • library, framework, module (eg. datatype management module)
  • generator, factory, iterator, ...
  • layer, repository, ...
  • port
    (in dataflow MOC)
  • in, out
  • connector
    (in dataflow MOC, mesg. passing MOC)
  • object reference, shared memory, tuple space, semaphor, ...
  • cf. exported & imported interface
  • dynamics-related:
    operation
    (in applicative MOC, mesg. passing MOC)
  • constructor, mutator, observer, iterator, ...
  • message
    (in message passing MOC)
  • = operation-name + arguments
  • broadcasted, multicasted, unicasted, ...
  • synchronized, fire&forget, ...
  • event
    (in multiagent MOC)
  • = event-class + arguments
  • message buffer
    (in mesg. passing MOC)
    message filter
    (in mesg. filtering MOC)
     
    Related events:
    update
    produce
    consume
    create
    apply
    request
    broadcast
     
    Related symbolic objects:
    program
  • containing: (recursive) definitions
  • specification
    diagram
    signature of interface
    signature of abstract datatype
     


    Some Abstract Datatypes

    Abstraction from a set of algebras which are final models for a specification.

    Categories of Datatypes (Value Classes) [210601]


    [TaxDT] Brian Meek: A taxonomy of datatypes; 159-167 in: SIGPLAN Notices 29/9; ACM 1994.

    Taken from [TaxDT] which is based on the Draft International Standard 11404, Language Independent Datatypes (LID):
    Primitive Datatypes & undecomposable values
    «Primitive datatypes are datatypes whose values are regarded fundamental - not subject to any reduction. They just "are". Those values are what some languages have called "atomic", or "plain values". Many primitive datatypes are also generic, in the sense that they have an unlimited number of values, and hence the datatypes often used in practice are confined to a finite subset of them.» [TaxDT]
    E.g. Boolean, State, Enumerated (linear or cyclic enumeration types), Character, Ordinal, Date-and-time, Integer, Rational, Scaled, Real, Complex, Void.

    «This is a much longer list than that which most languages designate as "primitive" ... A simple example of such a represented datatype is complex as an ordered pair of real numbers, the "real" and "imaginary" parts. However, LID eschews this form of "representation" as well as the more obvious bit-level form. A LID datatype is just a set of values, and using the cartesian form to identify them is only a convenience for some purposes - think of the polar form, for example.» [TaxDT]
    There's more on two-valued datatypes like boolean.
    «The important thing is that the LIS [language independent standard] leaves in no doubt that file descriptors are not integers, however convenient it may be to represent them by integers.» [shortly below the middle of "In defence of language-independent standards"]

    Aggregate Datatypes & decomposable values
    «An aggregate datatype is one whose values are made up of a number ... of component values, each of which is a value of another datatype.» [TaxDT]
    Other aggregate datatypes are described by restricting the properties of its values, i.e. of the aggregates (where the most general one is the bag):
    Multiplicity of the same value as a component (e.g. Set vs. Bag).
    Range of component candidates (e.g. Bag of Integers).
    Number of components (e.g. Set size 1 to 10).
    Ordering of components (e.g. Bag vs. Sequence).
    Recursion in the structure (e.g. Sequence vs. Tree).
    Distinction between components by tags (e.g. Bag vs. Record), by [externally or internally provided] keys from some datatype, or by indices, i.e., external keys from an uninterrupted range of values (e.g. Vector).
    Dimensions in the distinction of components: Inherent multidimensionality: No ordering of dimensions, and hence no general ordering of components (e.g. Array[1..10,1..10] of Int can yield "row" Vectors and "column" Vectors by fixing one of the indices). Induced multidimensionality: An aggregate datatype defined as an aggregate of components which are themselves aggregates, but which are then unpacked (e.g. Vector[1..10] of Vector[1..10] of Int).
    Generated Datatypes & undecomposable??? values
    «The (non-aggregate) generated datatypes in the taxonomy are pointer, procedure, and choice datatypes. Such datatypes are produced from other datatypes by the methods familiar from languages that include them ...» [TaxDT]
    "Subtypes" & no new values [NB.: This use of "subtype" does not coincide with the terminology in OO and in type theory]
    «In the taxonomy subtypes are created by modifying the value-space of a "base" datatype in various ways - specifying a range or size; selecting values; excluding values; extending the value-space; or defining explicitly how the value-space is constructed from that of a "base" datatype. ... [I]n the taxonomy any datatype can be used as the base, not just the primitive ones, and in that context extension is a useful subtype constructor e.g. you can make a new subtype by extending an existing one.» [TaxDT]
    Derived Datatypes and datatype generators
    «The taxonomy allows for new datatypes to be produced from existing ones (copies, or "clones") and for further datatypes and datatype generators to be derived from the basic primitive and generated ones» [TaxDT]
    E.g. Tree (a recursive sequence), CharacterString, BitString, Bit, Modulo, TimeInterval.


    Ulf Schünemann 100204