Topic: abstract data type
Topic: data type as constructors, selectors, and predicates
Topic: data type as a set of values and a set of operations
Topic: data type as a set of variables
Topic: generic operations and polymorphism
Topic: interface type
Topic: object-oriented data types
Topic: union data type
Topic: user-defined data type
Topic: variable as function that accesses an object's value
| |
Summary
A data type can be defined by its operations, properties and constraints which define how its objects are allocated, deallocated, initialized, accessed, modified, and replaced. The minimal operation set is a predicate for identifying typed objects, accessing functions for selecting type components, and an allocating function for constructing typed objects. (cbb 5/80)
Does a type specify behavior or is it a classification? The data type of a parameter is a set of operations which includes all operations used in the procedure. The data type of an object-oriented object is its class which defines a set of operations and a set of local variables. The data type of a variable defines a set of generic operations, a set of allowable procedure parameters, and how to construct an instance.
This view is particularly good for polymorphic procedures defined on parameters with a type that has a given set of operations. In Russell, the set of operations is called a signature. (cbb 1/90)
Subtopic: data type as operations
Quote: a data type is a set of operations
| Quote: things may have a datatype but not be data; e.g., an occam X channel that transports X values [»meekB9_1994]
| Quote: a data type is a finite collection of operations
| Quote: a data type is a set of operations that interpret values and variables in a universal value space [»donaJ7_1985]
| Quote: the type of an object is its operations; a type error occurs when an object does not have a method for a message [»rodrNR8_1993]
| Quote: data abstraction is the definition of a data type in terms of operations on the data type; a value or state is otherwise inaccessible [»taivA4_1993]
| Quote: classify types by the operations allowed for each type [»tennRD_1975, OK]
| Quote: to define a class need to define a complete set of operations. This is an important shift of emphasis from defining a data structure; lots of benefits [»stroB_1991]
| Quote: a data type is ordered if it includes functions pred and succ [»abraH12_1977]
| Quote: can define union types for types which participate in the same operations but do not share other attributes [»maclBJ12_1983]
| Quote: a Pegasus type can be characterized by the roles it plays in arguments and results of various functions
| Quote: Smalltalk is safe since type mismatches ('message not understood') are reported with a notify window [»teslL8_1981]
| Quote: CLU type-checks parameterized types via a 'where' clause that defines the required operations [»liskB_1996]
| Subtopic: type as behaviors
Quote: a type is a behavioral template; consists of sets of operations, properties, and constraints [»zdonSB11_1986]
| Quote: a type specifies behavior, i.e., a set of operations, properties, and constraints [»zdonSB10_1986]
| Quote: can modify a type by adding, renaming, or deleting operations [»demeA3_1979]
| Quote: object-orientation treats types as behavior specifications that can be composed, modified, and inherited [»wegnP10_1986]
| Quote: in the message/object model, objects have a class which implements such operations as 'compare'; a sort operation could use this for any type [»coxBJ7_1983]
| Quote: the external view of an object is its protocol, i.e., the set of messages that it responds to [»robsD8_1981]
| Subtopic: type as use
Quote: A is a subtype of B if it can be used wherever B is used; A is a subclass of B if it inherits methods and variables [»rodrNR8_1993]
| Subtopic: polymorphic types, signatures
Quote: each Russell expression has a signature identifying the operations that can be performed on the expression's value [»donaJ7_1985]
| Quote: type checking in Russell consists of matching argument signatures with parameter signatures [»demeA3_1979]
| Quote: a type signature is its name and the signatures of all operations that use that type [»demeA3_1979]
| Quote: a type in Russell is a set of procedures, functions, types, and schemes chosen by apply selection [»demeA3_1979, OK]
| Quote: in polymorphic procedures, can declare a set of operations required of a data type parameter [»demeA_1978]
| Quote: within a polymorphic procedure, a type parameter is a type with a given set of operations [»demeA_1978]
| Quote: a type parameter stands for a set of operations used within the procedure's body; similar to procedure parameters [»demeA_1978]
| Quote: Alphard's type declaration may include a list of necessary and sufficient operations [»wulfWA6_1976, OK]
| Subtopic: schemes, traits, and events
Quote: a scheme completely specifies the behavior of a type family; initialization, assignment, operations, and finalization [»mitcJG_1977]
| Quote: a scheme is a parameterized type that yields procedures, functions, types, and a signature [»demeA3_1979]
| Quote: a trait is a property of an object; it defines a set of operations which the object must have [»currG11_1986]
| Quote: a trait is a property of an object that consists of a set of applicable operations
| Quote: DSEE's Domain/OS manages files by their type; a type implements one or more traits of related operations; e.g., the protection trait [»lubkD6_1991]
| Quote: use properties to distinguish types that have the same operations; e.g., the property 'LIFO' for type 'stack'; simulate with dummy functions [»rodrNR8_1993]
| Quote: the trait 'is_integer_variable' is a combination of 'stores_integer' and 'has_name' traits [»currG11_1986]
| Quote: an object's 'alphabet' is the set of names of events that it can engage in [»hoarCA_1985]
| Subtopic: operator complexity
Quote: users and programs make assumptions about operator complexity; e.g., push and pop should be amortized constant time, string copy should be linear [»dehnJC4_1998]
| Subtopic: restricted types
Quote: in computing, restricted data types are assumed; e.g., text editors do not work on binary files [»coxBJ7_1983]
|
Related Topics
Topic: abstract data type (64 items)
Topic: data type as constructors, selectors, and predicates (20 items)
Topic: data type as a set of values and a set of operations (16 items)
Topic: data type as a set of variables (11 items)
Topic: generic operations and polymorphism (67 items)
Topic: interface type (50 items)
Topic: object-oriented data types (29 items)
Topic: union data type (12 items)
Topic: user-defined data type (13 items)
Topic: variable as function that accesses an object's value (21 items)
|