Topic: Thesa data structures

topics > computer science > programming > Group: Thesa programming system

data structures

data types in Thesa
implementation of Thesa data objects
primitive data types for Thesa
using pointers in Thesa

Subtopic: data record up

Topic: data record
Topic: access to components of a data object
Quote: arrays are homogeneous with dynamic selectors; records are heterogeneous with static selectors [»maclBJ_1987, OK]
Quote: the memory of a class is an elaboration in terms of more primitive objects [»hendP9_1975]
Quote: distinguish information and data; e.g., an employee's salary is data that doesn't need a separate entry; access by a field [»cbb_1980, OK]
Quote: even though data structure offsets are just addressing functions; want a table-driven representation [»cbb_1980, OK]

Subtopic: Null access up

Note: should access to a None object always create one? [»cbb_1990, OK]
Note: auto creation of objects on Null access runs out of space like running out of time [»cbb_2000, OK]

Subtopic: array up

Topic: arrays
Topic: variables for array bounds
Quote: in C, an array argument is converted to a pointer; arrays are effectively passed by reference [»ritcDM7_1978c]
Quote: avoid arrays because they create many dependencies; use sets, stacks, and queues instead [»millHD2_1986]
Quote: if A is an array in a cell computer, the name A(i) must be moved whenever cell i is changed [»hehnEC_1977a]
Quote: Oberon abandoned index types for arrays; indices start at 0, declarations specify a length [»wirtN7_1988]
Quote: an array in BCPL is a pointer to storage for the array [»ritcDM7_1978c]
Quote: in C, an array refers to the first element of the array, but a reference to an array is automatically converted to a pointer to the array [»ritcDM7_1978c]
Quote: in BCPL, the ith member of an array is *(Array+i) where * means indirection; also called Array[i] or i[Array] [»ritcDM7_1978c]
Quote: use the qualifier 'Lim' to indicate one beyond the last element of an array; better than 'Last'; 'Lim-First' is the number of elements [»simoC8_1991]

Subtopic: data structure up

Quote: data structures become references to variables, array elements, and pointers [»kiebRB9_1973]
Quote: can data structures be like programs with a hierarchical, nested sequential, static structure [»wileDS11_1973]
Quote: constructing new type like deriving new sets by cartesian product, mappings, list, union, subset, superset [»nordB3_1976, OK]
Quote: data structures consist of templates of arbitrary elements (e.g., functions); implement with pointers [»hallJC5_1974, OK]
Quote: a data structure is all fields reachable from some aggregate [»hallJC5_1974]
Group: data structures
Group: derived data types

Subtopic: type hierarchy up

Topic: restricted and extended types
Topic: type hierarchy
Group: type inheritance
Quote: assigning an extended type to a base type copies the shared fields only [»wirtN7_1988]
Quote: implement extended types in Oberon with extended declaration, type test, and type guard; allows inheritance of data fields and operations [»wirtN4_1988]
Quote: separate inheritance of behavior (behaves-like) from inheritance of representation (subsumes)
Quote: in Simula, can extend a class by appending information [»palmJ5_1973, OK]

Subtopic: restricted type up

Quote: while some operators apply to many types, others apply to restricted types, e.g., division [»hehnEC7_1975]
Quote: some values of composite types are invalid; need run-time checks, e.g., array bounds [»kiebRB9_1973, OK]
Quote: can restrict a value or object by excluding some of its public attributes [»maclBJ12_1983]

Subtopic: union and variant type up

Quote: in C, a union type is large enough to contain either type; programmer must assure appropriate access [»ritcDM7_1978c]
Topic: union data type
Topic: variant data types
Topic: casting a variable to a different type
Quote: a union type needs a predicate to distinguish different formats [»burgWH_1975]
Quote: Euclid allows assignment to a variant only within a discriminating case [»veneT3_1978]
Quote: for Euclid case types, either a case for every value or an otherwise clause [»barnDT3_1978]
Quote: before using an object as a different class, need to check for the class [»palmJ5_1973, OK]
Quote: Pascal errors caused by changing the tag of a variant record without initializes related fields
Quote: Pascal does not check when assigning values to record variants
Quote: a rep-type is the set of modes with the same representation; explicitly declared, includes operations [»parnDL3_1976]

Subtopic: containers up

Group: sets
Quote: a set is the barest notion of data storage, i.e., mere existence [»millHD2_1986]
Quote: a value should allow sets or sequences of entities, e.g., the authors of a book [»borgA1_1985]
Group: sequences
Topic: lists
Topic: strings
Topic: sub-sequences
Topic: trees
Topic: stacks

Subtopic: initialization up

Topic: initialization of data
Topic: default value
but default modification implicitly modifies the program's behavior. This is a general weakness of defaults which suggests limiting defaults to user input and unmodifiable defaults.
Topic: finalization of data
Quote: exceptions during finalization and initialization are difficult to handle properly

Related Topics up

Group: data structures   (12 topics, 278 quotes)

Topic: data types in Thesa (92 items)
Topic: implementation of Thesa data objects (27 items)
Topic: primitive data types for Thesa (82 items)
Topic: using pointers in Thesa
(49 items)

Updated barberCB 3/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.