Group: data structures
Topic: data types in Thesa
Topic: implementation of Thesa data objects
Topic: primitive data types for Thesa
Topic: using pointers in Thesa
| |
Subtopic: data record
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
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
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
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
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
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
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
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
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
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)
|