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)
|