ThesaHelp: references c-d
Topic: abstraction in programming language
Topic: reusable programming
Topic: generic operations and polymorphism
Topic: function library
Topic: extensible languages
Topic: abstraction in programming
Topic: object-oriented templates and containers
Topic: uniform reference to data
Topic: primitive data type as memory
Topic: universal data type
Topic: uniform representation of files and sequences
Topic: object and value equivalence
Topic: initialization of data
Topic: data type as constructors, selectors, and predicates
Topic: replacement as setting a reference to a value
Topic: variables as objects which remember a value
Topic: structural equivalence vs. name equivalence of data types
Topic: interface between program modules
Topic: uniform language systems
Topic: aliasing
Topic: code optimization by instruction reordering or scheduling
Topic: optimization of object-oriented programs
Topic: algorithmic complexity analysis
Topic: efficiency
Topic: data type as a set of operations
Topic: iterator
Topic: lists
| |
Reference
Dehnert, J.C., Stepanov, A.,
"Fundamentals of generic programming", in Jazayeri, M., et all (ed.),
Generic Programming '98, Heidelberg Germany, Springer-Verlag, 2000, LNCS 1766, April/May 1998, pp. 1-11.
Google
Quotations
1 ;;Quote: generic programming decomposes software into components with minimal assumptions; allows reuse without modification, like successful libraries
| 1 ;;Quote: reuse successful for system libraries, numeric libraries, and window management; fixed set of fully-specified data types and interfaces
| 2 ;;Quote: C++ Standard Template Library is good example of generic programming; data containers for user types; allows composition; compile time conversion of abstract type to concrete structures
| 2 ;;Quote: IBM 360 generalized machine memory as a sequence of bytes with uniform addressing independent of type
| 3 ;;Quote: the fundamental operations of type T are constructors, destructors, assignment, equality, and ordering
| 4 ;;Quote: constructing a type with an initial value is the same as assigning a value; both values equal afterwards
| 5 ;;Quote: a copy constructor creates a copy; zapping a value does not change other initializations
| 7 ;;Quote: equality of objects with remote parts must also test the remote parts; e.g., variable size objects
| 7 ;;Quote: equality should ignore irrelevant components; e.g., a reference count
| 7 ;;Quote: equality should ignore components that reflect relationships between objects; e.g., the person sitting on a chair object
| 7 ;;Quote: two objects are equal if their parts are equal, including remote parts, ignoring addresses, inessential components, and relationships
| 8 ;;Quote: idiosyncratic interfaces are not usable for widely reusable components and generic programming; interfaces should be obvious and consistently applied
| 9 ;;Quote: many optimizations depend on copies creating equal values while not affecting other values; if not enforced, user types can not be optimized
| 10 ;;Quote: users and programs make assumptions about operator complexity; e.g., push and pop should be amortized constant time, string copy should be linear
| 10+;;Quote: keep bidirectional iterators separate from random access iterators; e.g., different algorithms for rotate and random shuffle using these iterators
| 10 ;;Quote: constructors, destructors, and assignment are average-case linear time in total size of all parts
| 10+;;Quote: the equality operator is worst-case, linear time
| 10+;;Quote: equality failure is typically constant time since unequal objects usually test unequal early
|
Related Topics
ThesaHelp: references c-d (337 items)
Topic: abstraction in programming language (47 items)
Topic: reusable programming (77 items)
Topic: generic operations and polymorphism (65 items)
Topic: function library (50 items)
Topic: extensible languages (69 items)
Topic: abstraction in programming (67 items)
Topic: object-oriented templates and containers (27 items)
Topic: uniform reference to data (34 items)
Topic: primitive data type as memory (29 items)
Topic: universal data type (18 items)
Topic: uniform representation of files and sequences (14 items)
Topic: object and value equivalence (60 items)
Topic: initialization of data (42 items)
Topic: data type as constructors, selectors, and predicates (20 items)
Topic: replacement as setting a reference to a value (10 items)
Topic: variables as objects which remember a value (10 items)
Topic: structural equivalence vs. name equivalence of data types (30 items)
Topic: interface between program modules (55 items)
Topic: uniform language systems (25 items)
Topic: aliasing (28 items)
Topic: code optimization by instruction reordering or scheduling (16 items)
Topic: optimization of object-oriented programs (16 items)
Topic: algorithmic complexity analysis (10 items)
Topic: efficiency (96 items)
Topic: data type as a set of operations (38 items)
Topic: iterator (13 items)
Topic: lists (7 items)
|