Topic: abstraction in programming language

topics > computer science > programming > Group: program representation


abstract data type
abstraction in programming
function definition
named constants and expressions
object-oriented objects
Thesa data model
separate a module's interface specification from its implementation
value as an abstraction

Subtopic: abstraction vs. data up

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 up

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 up

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 up

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 up

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 up

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 up

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 up

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 up

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 up

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 up

Quote: a variable is an abstraction of an operand [»cbb_1973, OK]

Subtopic: implementation-neutral as abstraction up

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 up

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)

Updated barberCB 5/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.