Map
Index
Random
Help
Group
th

Group: object-oriented programming

topics > computer science > Group: programming



Group:
type inheritance

Topic:
design pattern
Topic:
frozen representation
Topic:
object-oriented classes
Topic:
object-oriented databases
Topic:
object-oriented data types
Topic:
object-oriented fields
Topic:
object-oriented methods
Topic:
object-oriented objects
Topic:
object-oriented packages
Topic:
object serialization
Topic:
optimization of object-oriented programs
Topic:
type reflection and introspection
Topic:
types of object-oriented classes
Group:
derived data types
Group:
graphical user interface
Group:
program module
Group:
types of programming languages

Topic:
actor machines
Topic:
classification
Topic:
data type as constructors, selectors, and predicates
Topic:
frozen representation
Topic:
collection class
Topic:
data flow languages
Topic:
interface type
Topic:
object transformation language
Topic:
object-oriented design
Topic:
object-oriented modelling language
Topic:
object-oriented prototypes
Topic:
parameter passing by message
Topic:
pattern language
Topic:
program web
Topic:
programming with a database of modules
Topic:
reusable programming
Topic:
sending an object across a network
Topic:
software components
Topic:
software models of reality
Topic:
user interface tool kits

Summary

The language Smalltalk is the best example of object-oriented programming. Each actor is an object with membership in a class. The objects receive messages and perform message analysis based on their class definition. Messages are analyzed one token at a time allowing arbitrary actions and arbitrary messages to other objects. Command languages often use a similar message facility for parameter passing to program files.

Advantages-- Textual messages provide a universal interface for developing independent program tools. But Smalltalk's real advantage is its user interface. It has symbolic characters, display windows, a mouse, and walk through construction. (cbb 5/80)

Object-oriented programming is abstract data types combined with inheritance via a class hierarchy and dynamic binding of procedure names. It emphasizes the global structure of a program. It is best suited for incremental compilation and rapid development. It has had a long history. Simula is generally credited as being the first use of the ideas. (cbb 4/89)

Subtopic: what is object-oriented programming? up

Quote: Smalltalk: everything we can describe can be represented by the recursive composition of behavioral building blocks [»kayA3_1993]
Quote: Ruby is a pure, untyped, object-oriented language with metaclasses, iterators, closures, reflection, run-time extension, dynamic loading, marshalling, threads, exceptions, garbage collection [»thomD1_2001]
Quote: object orientation is encapsulation + abstraction + polymorphism; groups object state and operations with information hiding [»nicoJR6_1993]
Quote: object-oriented programming: decide on classes; provide a full set of operations for each class; sub-classes will inherit these operations [»stroB5_1989]
Quote: a programming language is object oriented if it has inheritance and object based if it has objects [»chinRS3_1991]
Quote: C++ is a general purpose programming language for enjoyable programming by serious programmers [»stroB_1991]
QuoteRef: wegnP8_1990 ;;thorough review of object-oriented programming.

Subtopic: theory of objects up

Quote: a theory of objects as a foundation for object-oriented programming; like lambda calculus but based on objects as primitives; handles classes, self, dynamic dispatch, inheritance, etc. [»abadM_1996]
Quote: delegation-based object languages like Self and Cecil now distinguish trait objects (like classes), prototype objects (for cloning), and normal objects; enforceable [»abadM_1996]

Subtopic: object-orientation as abstraction up

Quote: object-oriented programming directly supports abstraction by classification/instantiation, aggregation/decomposition, generalization/specialization, grouping/individualization [»taivA9_1996]
Quote: prefer object-orientation implementation for shared systems; encapsulates state in a class; avoids globals [»kampPH7_2004]

Subtopic: object-oriented as data up

Note: object-oriented programming converts case statements into procedure calls, organized by data [»cbb_1990, OK]

Subtopic: object-oriented as encapsulation up

Quote: a behavioral building block hides its combination of state and process inside itself, with access only through messages
Quote: an object's data may only be examined or modified through its operations
Quote: object-oriented abstraction disciminates the operation vs. representation for abstract data type
Quote: if restrict access to a data structure then only member functions can modify the data, cause illegal values, and define how to use the data [»stroB_1991]
Quote: OS 6 streams are first class objects; assign to variables, use as parameters, returned by stream functions; e.g., RemoveLayoutChs to remove layout from a stream [»stoyJE3_1972]

Subtopic: object-oriented as local state up

Quote: with object-oriented programming, long argument lists and global variables become local state [»stroB_1994]
Quote: an object implements an abstract data type with a private, mutable state and public operations on the state [»taivA4_1993]

Subtopic: object-oriented as late binding up

Quote: progress in software often concerns late-binding; e.g., index registers, behaviors instead of state/processes, portability, distributed systems [»kayAC_1996]
Quote: module communication by data coupling allows the definition of reusable black boxes; pass actual data or its location [»joneTC4_1979b]

Subtopic: object-oriented as explicit types up

Quote: object-based programs use objects that contain type information [»stroB_1991]
Quote: with indirect threaded code, the address for operand fetch identifies the data type of a value; similar to object-oriented programming [»dewaRB6_1975]
Quote: Hypertext, frame-based AI systems, and object-based systems are similar: typed, slotted, linked entities [»halaFG7_1988]

Subtopic: object-oriented as inheritance up

Quote: object oriented programming is objects and inheritance; abstract data types are too restrictive [»taivA4_1993]
Quote: the use of inheritance for conceptual specialization is rarely realized [»taivA9_1996]
Quote: subsumption is the property that a value of type A is also a value of any supertype B with A<:B [»abadM_1996]

Subtopic: object-oriented vs. process paradigm up

Quote: object-oriented emphasizes global structure while process paradigm insists that all data is local [»stroR10_1986]
Quote: both object-oriented and process paradigms based on message passing with clear separation between interface and implementation

Subtopic: object-oriented vs. functional paradigm up

Quote: object-oriented programming is the antithesis of functional programming; i.e., mutable object state vs. immutable, eternal values [»taivA4_1993]

Subtopic: history up

Quote: object-oriented programming started in 1949 with using Monte_Carlo methods for a heavy water reactor [»nygaK10_1983, OK]
Quote: object-oriented programming originated from Simula for modeling the concepts of an application domain [»taivA9_1996]
Quote: Smalltalk is based on object-oriented processing and a bitmap for visual display [»ingaDH8_1981a]
Quote: HyperCard scripts based on messages send to objects with inheritance [»willG12_1987]
Quote: OOPC programs are almost as efficient as C because primitive operations are handled in C [»coxBJ1_1983]
Quote: operating system research influenced C++: protection from access rights, initialization from capabilities, const from read/write access protection, exception handling from fault-tolerant systems [»stroB_1994]
Quote: Sketchpad can perform basic operations on any drawing part (e.g., display); allows changing the specific details without changing the general parts [»suthIE5_1963]
Quote: Sketchpad includes general functions that are independent of type; e.g., expand an instance of a subpicture; powerful [»suthIE5_1963]
Quote: classes are a remodeling of records; hierarchical tree structure; members are objects; the prefix of a subclass is the higher level class [»dahlOJ_1967]

Subtopic: examples up

Quote: using MacApp for Intermedia, guarantees common functionality
Quote: developed Intermedia quickly by using object-oriented techniques [»yankN1_1988]
Quote: the local structure of Mesa is like Pascal; its global structure is like Simula 67; used a lot [»gescCM8_1977]
Quote: Amoeba is an object-oriented distributed operating system [»vanrR10_1988]
Quote: reimplemented in C++ to reduce the amount of code needed for new editors [»wyboN4_1990]

Subtopic: implementation up

Quote: Squeak usually uses one word of overhead per object, incremental garbage collection, bulk-mutation, extended BitBlt, multi-media
Quote: Squeak is a Smalltalk implementation written entirely in Smalltalk with a translator to generate a C program [»ingaD10_1997]
Quote: indirect threaded code consists of addresses of data that includes addresses of library routines. Compared to direct threaded code, it is machine independent, smaller, and faster [»dewaRB6_1975]
Quote: SmallEiffel uses global type inference to replace late binding with direct calls to concrete code; efficiently handles multiple inheritance, genericity, dead code [»zendO10_1997]

Subtopic: hardware support up

Quote: can provide hardware support of object types and their operations [»rattJ3_1982]

Subtopic: productivity up

Quote: with MacApp can build Intermedia applications in a few weeks [»yankN1_1988]
Quote: C++ simplified maintenance; common user interface idioms were defined in one place; bug fixes propagated to all editors [»wyboN4_1990]
Quote: while difficult to create the first display type for a class, additional display types are easy and generating a display is quick [»maieD1_1986]

Subtopic: efficiency up

Quote: after optimization, C++ is about 10% slower than C because of procedure call mechanics and the large number of procedure calls [»blakBA3_1996]
Quote: Self programs run 5 times faster than other pure object-oriented languages and 2-3 times slower than optimized C [»ungaD10_1992]

Subtopic: problems with productivity up

Quote: students of C++ took a surprisingly long time to develop simple programs; code reuse and development time do not appear to be lower for C++ than for C [»blakBA3_1996]
Quote: object-oriented programming leads to a modest increase in productivity
Quote: no difference in productivity for procedural vs. object-oriented development
Quote: many experienced programmers were not able to learn object-oriented programming; needed experience with hardware, finite-state machines, or event loops [»mariB5_1996]
Quote: managing large class libraries is hard; low productivity due to many words, dialects, and inconsistent rules [»mariB5_1996]

Subtopic: problems with maintenance up

Quote: objects without significant reuse seemed far worse than traditional software-development methods; only their creators could maintain them and even then, with considerable difficulty [»mariB5_1996]
Quote: the strong typing of most object-oriented languages encourages narrowly defined packages that are hard to reuse [»oustJK3_1998]
Quote: C++ bugs took twice as long to correct as C bugs; C++ failure may be a long way away from the error [»hattL5_1998]
Quote: components involved in inheritance had six times more defects than those without [»hattL5_1998]
Quote: object-oriented paradigm best for writing systems that can be understood by one person [»stroR10_1986]
Quote: in Smalltalk, a function's code is spread over many objects of many classes; must piece these together to understand the system [»nielJ5_1989]
Quote: Smalltalk has fallen into the hacker trap of too many features; these overwhelm the novice [»nielJ5_1989]
Quote: limit application developers to aggregation and encapsulation; only experts should subclass via inheritance and additive specialization
Quote: class-library size can grow rapidly [»mariB5_1996]

Subtopic: problems with object-oriented programming up

Quote: fine-grain objects provide a uniform environment and consistent data model; but high overhead for object management and invocation [»chinRS3_1991]
Quote: control flow must be explicitly represented separately from class behaviors; use state-transition matrix [»mariB5_1996]
Quote: object-oriented development requires incremental compilation

Group: object-oriented programming up

Group: type inheritance   (13 topics, 394 quotes)

Topic: design pattern (17 items)
Topic: frozen representation (6 items)
Topic: object-oriented classes (67 items)
Topic: object-oriented databases (15 items)
Topic: object-oriented data types (29 items)
Topic: object-oriented fields (28 items)
Topic: object-oriented methods (42 items)
Topic: object-oriented objects (39 items)
Topic: object-oriented packages (6 items)
Topic: object serialization (13 items)
Topic: optimization of object-oriented programs (16 items)
Topic: type reflection and introspection (28 items)
Topic: types of object-oriented classes
(18 items)

Related Topics up

Group: derived data types   (9 topics, 119 quotes)
Group: graphical user interface   (24 topics, 512 quotes)
Group: program module   (10 topics, 336 quotes)
Group: types of programming languages   (29 topics, 611 quotes)

Topic: actor machines (2 items)
Topic: classification (65 items)
Topic: data type as constructors, selectors, and predicates (20 items)
Topic: frozen representation (6 items)
Topic: collection class (11 items)
Topic: data flow languages (33 items)
Topic: interface type (50 items)
Topic: object transformation language (10 items)
Topic: object-oriented design (30 items)
Topic: object-oriented modelling language (6 items)
Topic: object-oriented prototypes (39 items)
Topic: parameter passing by message (31 items)
Topic: pattern language (9 items)
Topic: program web (8 items)
Topic: programming with a database of modules (94 items)
Topic: reusable programming (77 items)
Topic: sending an object across a network (11 items)
Topic: software components (11 items)
Topic: software models of reality (24 items)
Topic: user interface tool kits
(31 items)


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