Group: function
Group: parameters
Group: variables
Topic: abstraction
Topic: abstract data type
Topic: abstraction in programming
Topic: function definition
Topic: named constants and expressions
Topic: object-oriented objects
Topic: Thesa data model
Topic: separate a module's interface specification from its implementation
Topic: value as an abstraction
| |
Subtopic: abstraction vs. data
Quote: put details in the metadata, abstractions into code; think declaratively for ease of change at the last moment [»huntA_2000]
| Subtopic: program as abstraction
Quote: a program is a concrete representation of the ideas in a problem solution. Its structure should match the ideas [»stroB_1991]
| Quote: generic programming decomposes software into components with minimal assumptions; allows reuse without modification, like successful libraries [»dehnJC4_1998]
| Quote: programming languages deal with abstract objects, contrary to the conventional view that programs are symbol strings plus rules for manipulating these strings; the later yields a macrogenerator without regard to semantics [»straC8_1967]
| Quote: C++'s abstraction mechanisms map a user's high-level concepts into a machine model without loss of time or space efficiency [»stroB12_2004]
| Subtopic: subroutine as abstraction
Quote: use routines to reduce complexity by hiding the details [»mccoS7_1998]
| Quote: generalization is the same as the abstraction or lambda operator in symbolic logic [»kimuTD7_1985]
| Quote: the effective use of routines makes modern programming possible; greatest invention in computer science [»mccoS7_1998]
| Quote: the subroutines of any routine may themselves have subroutines; like bigger and lesser fleas
| Quote: a routine calculates a function of the state of the machine and stores the result, independent of the majority of the content of the store [»turiA3_1951]
| Quote: programs should only depend on the official account of a subroutine, not speed; allows alteration [»turiA3_1951]
| Subtopic: object-oriented as abstraction
Quote: object-oriented programming directly supports abstraction by classification/instantiation, aggregation/decomposition, generalization/specialization, grouping/individualization [»taivA9_1996]
| Quote: object-oriented languages support aggregation/decomposition by using an object as a variable of another object [»taivA9_1996]
| Quote: object-oriented programming supports grouping/individualization by defining arbitrary collection classes such as lists and dictionaries [»taivA9_1996]
| Subtopic: inheritance as abstraction
Quote: implement inheritance by delegation or by concatenation; i.e., use reference to share an interface, or use contiguity to copy an interface [»taivA9_1996]
| Quote: the use of inheritance for conceptual specialization is rarely realized [»taivA9_1996]
| Subtopic: class as abstraction
Quote: a base class expresses a commonality of representation and calling interface
| Quote: constructing a new type in Sketchpad is a finite, well-defined task; construct a generic block of 20 registers and the corresponding subroutines
| Quote: a Sketchpad type is a ring of objects under a generic heading; the generic heading defines the type and its subroutines [»suthIE5_1963]
| Quote: represent a separate idea as a class; a separate entity as an object; commonality between classes as a base class; and a container of objects as a template
| Quote: think of a program as a set of interacting classes and objects; not as a bunch of data structures manipulated by functions [»stroB_1991]
| Quote: all operations of a class should support the same level of abstraction; e.g., separate operations on file descriptors from operations on file names [»stroB_1991]
| Quote: a fat interface is a class that provides all functions for a set of concepts, e.g., a universal 'container' class [»stroB_1991]
| Quote: avoid fat interfaces: slow implementation, difficult to prove, weak correspondence between concepts and classes, encourages the use of derivation for implementation convenience
| Quote: the classes in an application framework have fat interfaces that are hardly types in the traditional sense
| Subtopic: data type as abstraction
Quote: user-defined data types are abstractions; e.g., structured programming, stepwise refinement, and information hiding
| Note: type lets you substitute like for like [»cbb_1990, OK]
| Subtopic: objects as abstraction
Quote: instead of abstraction, programming should be more concrete with independent, directly manipulated, self-sufficient objects [»taivA11_1993]
| Quote: abstractions either have an "eternal" existence (values, concepts) or a temporary, tangible existence (objects) [»taivA4_1993]
| Quote: use concrete prototypes instead of classes; otherwise, need to design and implement an abstract class before creating an object [»bornAH11_1986]
| Quote: MacPaint is concrete: the only data structure is bits on the screen, and the user's sole goal is to turn those bits on and off; literally no state to remember [»myerBA_1992]
| Quote: the object-oriented abstract type is a bigger building block than a module interface, procedure, statement, or instruction [»nelsG_1991]
| Subtopic: template as abstraction
Quote: a template with type arguments expresses a commonality across types [»stroB_1991]
| Quote: templates and type inheritance need each other. Without templates, derivation of similar class is tedious; without inheritance, templates lead to massive replication
| Quote: a UML generalization substitutes for objects of the specialized element [»boocG_1999]
| Quote: Cornell_Program_Synthesizer templates are abstract computational units; high level of abstraction; user never mired in syntactic detail [»teitT9_1981]
| Quote: while abstract, vector and string templates are a perilously thin veneer over a mass of complexity; too easy to punch through the veneer [»briaM1_2001]
| Subtopic: data, type, parameter as abstraction
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: in a programming language you want matrices, vectors, telephone switches, lines, whatever exists in the application area
| Quote: defining general-purpose or application-specific types is the most fundamental programming activity in C++ [»stroB_1991]
| Quote: use data abstraction to construct modular programs; i.e., define new types that match the application's concepts, e.g., C++ [»stroB_1991]
| Quote: C++ supports data abstraction; i.e., the mapping between concept and type is straightforward and effective [»stroB_1996]
| Quote: a well designed user-defined type in C++ is used the same as a built-in type
| Quote: build complex constraints from simple ones by abstraction: recursive embedding, parameterization, and type declaration [»deutLP1_1981]
| Quote: a data type is a concrete representation of an idea or concept; e.g., 'float' [»stroB_1991]
| Subtopic: variable as abstraction
Quote: a variable is an abstraction of an operand [»cbb_1973, OK]
| Subtopic: implementation-neutral as abstraction
Quote: DTrace providers declare translators that translate from implementation-specific data structures into abstract ones; e.g., an io provider has 'start' and 'done' instead of 'fstat', etc. [»cantB2_2006]
|
Related Topics
Group: function (12 topics, 232 quotes)
Group: parameters (10 topics, 145 quotes)
Group: variables (10 topics, 128 quotes)
Topic: abstraction (62 items)
Topic: abstract data type (64 items)
Topic: abstraction in programming (67 items)
Topic: function definition (25 items)
Topic: named constants and expressions (21 items)
Topic: object-oriented objects (39 items)
Topic: Thesa data model (58 items)
Topic: separate a module's interface specification from its implementation (86 items)
Topic: value as an abstraction (25 items)
|