Object-Orientation FAQ
COMP.OBJECT FAQ
Version: 1.0.9
Date: 4/2/96
Author:
Bob Hathaway
Geodesic Systems, Inc.
Cyberdyne Systems Corporation
rjh@geodesic.com
http://www.geodesic.com/people/Bob
75027.1663@compuserve.com
Copyright 1992-1995 Bob Hathaway
All rights reserved.
Permission is granted to freely copy and distribute this document but only
with this full header attached and at no cost to others with the exception
of a nominal distribution fee, if any. No sale, resale or reprinting is
granted without the explicit written permission of the author.
Anonymous FTP Sites and Hypertext Server:
anonymous@zaphod.uchicago.edu:/pub/CompObj9.faq(.Z) (128.135.72.61)
anonymous@rtfm.mit.edu:/pub/usenet/comp.object/*_Part_* (18.181.0.24 Tmp)
http://iamwww.unibe.ch/~scg/OOinfo/FAQ/index.html (new IAM location)
Mail Server: (See also section 1.24)
mail mail-server@rtfm.mit.edu
Subject:
send usenet/comp.object/*
Zaphod is preferred over rtfm for anonymous ftp retrieval, as it provides a
single file. Rtfm contains the FAQ as posted.
To use the hypertext system, see APPENDIX E, entries 27.
Comp.Object Archive:
A new and workable comp.object archive is now available on the www, with
much thanks to Markus A. Beckmann, beckmann@informatik.mathematik.uni-mainz.de.
http://aaimzb.mathematik.uni-mainz.de/Personal/Mitarbeiter/comp.object.idx.html
Object Currents:
A related and free new on-line Object resource edited by yours truly:
http://www.sigs.com/objectcurrents - Please take a look!
Contributors: Per Abrahamsen, Margaret Burnett, Edwardo Casais, Stewart
Clamen, Dennis De Champeaux, Mike DeVaney, Eric Dujardin, Piercarlo Grandi,
Tim Harvey, Brian Henderson-Sellers, Urs Hoelzle, Paul Johnson, Bill
Kinnersley, Oscar Nierstrasz, James Odell, David Wheeler, Eoin Woods, and
many others whose contributions have helped this document to fulfull its
objective of bringing object-oriented concepts and systems to everyone.
Special thanks to Object Systems, Geodesic Systems and Cyberdyne Systems for
providing the support and resources needed to make this effort possible.
Object Systems was primarily a "think tank" and producer of object-oriented
technologies, Geodesic Systems brings the latest in object-oriented theory
and technique to practical and widespread use, as does Cyberdyne.
And to kick off the new Appendix G, Commercial OO Libraries and Systems, I'm
introducing our own new product (partly developed by me:-), the Great Circle
(TM) automatic memory management system for C and C++. I've used it on
several of my own projects where it automatically fixed all memory leaks
instantly.
New formatted and submitted entries for Appendix G are most welcome.
Objective:
In the spirit of other FAQs, to provide a simple document to answer the most
frequently asked and recurring questions and to allow new users to understand
frequently discussed topics and terms used in comp.object. This should
bring new comp.object readers and/or writers to at least an introductory
level of comprehension as soon as possible. Other goals (hopes) are to
provide a quick and current reference on available systems such as object-
oriented languages, CASE, OODB and etc. and to provide good references to
current and relevant OO systems, groups, texts and literature.
Disclaimer:
This document does not necessarily reflect the opinions of the author's or
any contributor's companies. There are no explicit or implicit guarantees
implied by this document.
While object systems are a constantly changing and moving target with a broad
diversity of often conflicting methodologies, constructs, terminologies,
approaches, languages, implementations and etc. and comp.object has a wide
diversity of readers and writers ranging from students, professors and
researchers in academia to beginners, professionals, top-notch experts and
leaders in industry with a broad range of experience and backgrounds ranging
across many paradigms, this FAQ can certainly not aspire to satisfy all of them
completely but instead attempts to provide the most well-rounded treatment of
object-oriented concepts and realizations primarily from the mainstream and
popular authors and systems and further to provide a collection of available
systems and tools in the appendices.
Several improvements are planned for future FAQs, including a glossary.
SECTION 1: BASICS
1.1) What Is An Object?
1.2) What Is Object Encapsulation (Or Protection)?
1.3) What Is A Class?
1.4) What Is A Meta-Class?
1.5) What Is The Infinite Regress Of Objects And Classes?
1.6) What are MOPs and Reflection?
1.7) What Is Inheritance?
1.8) What Is Multiple Inheritance?
1.9) Does Multiple Inheritance Pose Any Additional Difficulties?
1.10) What Is Dynamic Inheritance?
1.11) What Is Shared (Repeated) Inheritance?
1.12) Why Use Inheritance?
1.13) Why Don't Some People Like Inheritance?
1.14) What Is Specialization/Generalization/Overriding?
1.15) What Is The Difference Between Object-Based And Object-Oriented?
1.16) Is A Class An Object?
1.17) Is An Object A Class?
1.18) What Is A Method? (And Receiver And Message)
1.19) What Are Multi-Methods And Multiple-Polymorphism?
1.20) What Is OOP?
1.21) What Is OOA/OOD (And Where Can I Get What I Need On It)?
1.22) Where Did Object-Orientation Come From?
1.23) What Are The Benefits Of Object-Orientation?
1.24) What Other FAQs Are available?
SECTION 2: TYPING
2.1) What Is Polymorphism?
2.2) What Does Polymorphism Boil Down To In OO Programming Languages?
2.3) What Is Dynamic Binding?
2.4) Is There A Difference Between Being A Member Or Instance Of A Class?
2.5) What Is This I Read About ML And Functional Programming Languages?
2.6) What Is the Difference Between Static And Dynamic Typing?
2.7) What Is A Separation Between Type And Class (Representation)?
2.8) What Are Generics And Templates?
SECTION 3: GENERAL
3.1) What Is The "Classical" Object-Oriented Paradigm?
3.2) What Is The "Delegation/Prototyping" Object-Oriented Paradigm?
3.3) Are There Any Other Object-Oriented Paradigms?
3.4) What Are The Major Object-Oriented Programming Languages Today?
3.5) What Are Object-Oriented Databases And Persistence?
3.6) What Are Object-Oriented Operating Systems?
3.7) What Are The Current Object-Oriented Methodologies?
3.8) What Is The OMG/OMA/ORB/CORBA?
3.9) Why Is Garbage Collection A Good Thing?
3.9b) Why is Garbage Collection Necessary For Object-Oriented Programming?
3.10) What Can I Do To Teach OO To The Kids?
3.11) What Is Available On Object-Oriented Testing?
3.12) What Distributed Systems Are Available?
3.13) What Is The MVC Framework?
3.14) What Is Real-Time?
3.15) What Is Available on OO Metrics?
3.16) What Are Visual Object-Oriented Programming Systems?
3.17) What Tutorials Are Available On Object-Oriented Concepts and Languages?
SECTION 4: COMMONLY ASKED LANGUAGE SPECIFIC QUESTIONS
4.1) What Is Downcasting?
4.2) What Are Virtual Functions?
4.3) Can I Use Multiple-Polymorphism Or Multi-Methods In C++?
4.4) Can I Use Dynamic Inheritance In C++?
ANNOTATED BIBLIOGRAPHY
APPENDIXES
APPENDIX A VIPS
APPENDIX B OBJECT-ORIENTED DATABASES AND VENDORS
APPENDIX C OBJECT-ORIENTED LANGUAGES AND VENDORS
APPENDIX D OBJECT-ORIENTED CASE (OOA/D/P TOOLS) AND VENDORS
APPENDIX E ANONYMOUS FTP SITES
APPENDIX F MAGAZINES, JOURNALS AND NEWSLETTERS
APPENDIX G COMMERCIAL OBJECT-ORIENTED LIBRARIES AND SYSTEMS
[Another appendix on commercial object-oriented class libraries should be
added soon]
- SECTION 1: BASICS
- SECTION 2: TYPING
- SECTION 3: GENERAL
- SECTION 4: COMMONLY ASKED LANGUAGE SPECIFIC QUESTIONS
- ANNOTATED BIBLIOGRAPHY
- APPENDICES
- APPENDIX A VIPS
- Booch, Grady <egb@rational.com>
- Cox, Brad
- Goldberg, Adele (Alan Kay, Dan Ingalls)
- Meyer, Bertrand <bertrand@eiffel.com>
- Nygaard, Kristen (and Dahl, Ole-Johan)
- Rumbaugh, Dr. James
- Shlaer, Sally (and Mellor, Stephen J.)
- Stroustrup, Bjarne (bs@alice.att.com)
- APPENDIX B OBJECT-ORIENTED DATABASES AND VENDORS
- APPENDIX C OBJECT-ORIENTED LANGUAGES AND VENDORS
- APPENDIX D OBJECT-ORIENTED CASE (OOA/D/P TOOLS) AND VENDORS
- APPENDIX E ANONYMOUS FTP SITES
- PROGRAMMING LANGUAGES
- COMPILER TOOLS
- DATABASES (See also APPENDIX B)
- TOOLS AND CASE
- LIBRARIES AND INTERFACES
- DOCUMENTATION AND INFO SERVERS
- PAPERS
- GENERAL
- OTHER
- DESCRIPTIONS
- 1 Alcool-90 (dyn ML)
- 2 Arjuna (Distr Prog System)
- 3 BOS (prototyping)
- 4 G++ for DOS (Many sites)
- 5 cooC (Concurrent, OO C ext.)
- 6 FMPL (prototyping)
- 7 MAX (visual OO)
- 8 O'small (OO lang for teaching)
- 9 OBJ3 (OO lang)
- 10 OBST (lang, perst, OODB)
- 11 OOT (OO Turing demo)
- 12 Sather (simple Eiffel)
- 13 Self
- 14 C++ gram, etc.
- 15 ConceptBase (OODB, reqkey)
- 16 C++ OODB
- 17 Exodus (Storage Man, perst)
- 18 GRAS
- 19 MOOD (OODB, lim arch)
- 20 Ode (C++ OODB)
- 21 POSTGRES (Ext. Rel. DBMS)
- 22 Sniff (C++ devel environ)
- 23 C++ tags
- 24 short tool
- 25 COOL(C++, Cfront 2.1, from GE)
- 26 idl.SunOS4.x, idl.Solaris2.x
- 27 Browser for OO info
- 28 Apertos(Meta-Obj Distr OS, research)
- 29 Actors Paper (UIUC)
- 30 Chambers' Thesis
- 31 graph drawing
- 32 Law of Demeter
- 33 OO Dyn Grping, memory
- 34 Pred Classes (Cecil)
- 35 Manchester Archive and some
- 36 Object Design's OO7 Results
- 37 Graph service
- 38 C++SIM (Simula-like Sim Pkg)
- 39 commercial on cd-rom
- 40 C++ Signatures (subtyping)
- 41 The Texas Persistent Store
- 42 OSE C++lib
- 43 Traces,kiczales,MOP,DI
- 44 C++ coding standard
- 45 Kala Archive
- 46 BeBOP(seq,par,LP,OO,meta)
- 47 Knowledge Media, Massive cd-rom, lots of freeware
- 48 u++, C++ Trans. and Concry RTS
- 49 Real Time
- 50 Ada95 (compiler, GNU)
- 51 OO Course Slides
- 52 GTE Distrib Reports
- 53 KEOBJ, OO DSP micro-kernel
- 1 DESCRIPTION
- 2 WHERE TO FIND THE PACKAGE
- Highlights
- Complete CORBA implementation
- Features
- Platforms
- LICENSING
- ACKNOWLEDGEMENTS
- 0. Summary
- ADVERTISEMENT: This paper tries to explain
- APPENDIX F MAGAZINES, JOURNALS AND NEWSLETTERS
- APPENDIX G COMMERCIAL OBJECT-ORIENTED LIBRARIES AND SYSTEMS
This document was translated by ms2html v1.8 on 04.06.96.