[adeel420] Object-Orientation FAQ

  • From: "Sajid Iqbal" <sajid_cyberspace@xxxxxxxxxx>
  • To: <"Undisclosed-Recipient:;"@smtp-2.hotpop.com>
  • Date: Fri, 22 Nov 2002 05:26:54 +0500

                            Object-Orientation FAQ

   Version: 1.0.9
   Date: 4/2/1996

   Author : Bob Hathaway
   Geodesic Systems, Inc.
   Cyberdyne Systems Corporation
   rjh@xxxxxxxxxxxx http://www.geodesic.com/people/Bob
   75027.1663@xxxxxxxxxxxxxx

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.

   Get your own mirror of the oofaq

   See also The notes about this FAQ.
     _________________________________________________________________

   Search Object Orientation FAQ ______ ____________________
     _________________________________________________________________

                               Table of Contents

     * 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?
                    # Webster's New World Dictionary:
                    # Author's Definition:
                    # Strachey's Original Definition [Strachey 67]:
                    # Cardelli and Wegner's Definition [Cardelli 85]:
                    # Booch's Definition [Booch 91, p. 517]:
                    # Meyer's Definition [Meyer 88, sect. 10.1.5
                      Polymorphism]:
                    # Stroustrup's Definition [Stroustrup 90, p.

          + 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 The Difference Between Static And Dynamic
            Typing?
          + 2.6) What Is This I Hear About ML And Functional
            Programming Languages?
          + 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?
               o 3.8.1 Contact Information
               o 3.8.2 OMG Summary
               o 3.8.3 Mail Server Access
               o 3.8.4 OMG Publications
                    # First Class (Bi-Monthly Newsletter)
                    # Object Management Architecture Guide (OMA)
                    # The Common Object Request Broker: Arch. and
                      Spec. (Corba)
                    # Pricing
               o 3.8.5 Implementations (Brief)
                    # Sun DOE
                    # Tivoli
               o 3.8.6 Implementation Descriptions
                    # The ELECTRA Toolkit
                    # HD_DOMS
                    # HP ORB Plus and HP Distributed Smalltalk
                    # Iris RDOM
                    # Object-Oriented Technologies DOME
                    # ORBELINE - The SMART Object Request Broker
                    # Orbix
          + Availability
          + Documents Available from IONA
                    # NCR 'Cooperative Frameworks' -- a Distributed
                      Object Foundation
          + 3.8.7 Books, Articles, And Literature
          + 3.9) Why is Garbage Collection A Good Thing?
          + 3.10) What Can I Do To Teach OO To The Kids?
          + 3.11) What Is Available On Object-Oriented Testing?
                    # What?
                    # Who?
                    # Why?
                    # Written Material
                    # Software
                    # ACKs
          + 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?
     * 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
     * APPENDICES
     * APPENDIX A VIPS
          + Booch, Grady <egb@xxxxxxxxxxxx>
          + Cox, Brad
          + Goldberg, Adele (Alan Kay, Dan Ingalls)
          + Meyer, Bertrand <bertrand@xxxxxxxxxx>
          + Nygaard, Kristen (and Dahl, Ole-Johan)
          + Rumbaugh, Dr. James
          + Shlaer, Sally (and Mellor, Stephen J.)
          + Stroustrup, Bjarne (bs@xxxxxxxxxxxxx)
     * APPENDIX B OBJECT-ORIENTED DATABASES AND VENDORS
          + EXTENDED RELATIONAL DB MODEL
               o Research Systems
                    # POSTGRES (Berkeley)
          + Commercial Systems
                    # Illustra
                    # Montage (ORDBMS) [Research System POSTGRES]
                    # Omniscience ORDBMS
                    # Raima Database Manager/Velocis/Raima Object
                      Manager
                    # Total ORDB
          + OO DATA MODEL
               o Research Systems
                    # AVANCE (SYSLAB)
                    # CLOSQL (University of Lancaster)
                    # ConceptBase - A Deductive Object Manager for
                      Meta Data Bases
                    # COOL/COCOON (Ulm Universitaet)
                    # Exodus (University of Wisconsin)
                    # Machiavelli (University of Pennsylvania)
                    # OBST/STONE (Forschungszentrum Informatik
                      [FZI], Karlsruhe, Germany)
          + The OBject system of STONE --- OBST
          + Data Model
          + Schemas and Containers
          + Incremental Loading
          + Prototype
          + Schema Evolution Support Environment (USE)
          + Structurer and Flattener (STF)
          + tclOBST
          + System Requirements
                    # Ode
                    # Oggetto, University of Lancaster, UK.
                    # IDB Object Database
                    # ORION (Now marketed as ITASCA)
                    # OTGen (Carnegie Mellon University/UMass
                      Amherst)
                    # PLOB! (Hamburg University)
                    # VODAK
               o Commercial Systems
                    # ArtBASE (Object-Oriented Data Model)
                    # EasyDB (Basesoft Open Systems, Sweden)
                    # GemStone (Formerly Servio Corporation)
                    # ITASCA
                    # MATISSE
          + For additional information on MATISSE, contact
                    # NeoAccess
                    # OBST+
                    # O2 (O2 Technology)
                    # Objectivity/DB (Objectivity)
                    # ObjectStore
                    # ONTOS [formerly VBase] (Now ONTOS, Inc.
                      formerly Ontologic)
                    # Odapter/OpenODB (Hewlett-Packard)
                    # OOFILE (A.D. Software)
                    # Phyla
                    # POET <Persistent Objects and Extended Database
                      Technology> (Poet Software)
                    # Statice (Symbolics)
                    # UniSQL
                    # Unisys Universal Repository
                    # Versant (Versant Object Technology)
                    # VisualWorks
          + Other Models
               o Research Systems
                    # GRAS
                    # IRIS (HP Labs)
               o Commercial Systems
                    # IDL (Persistent Data Systems)
                    # Pick
          + Interfaces
               o Research Systems
                    # Penguin (Stanford)
                    # DBTools.h++
                    # OBJECT GATEWAY
                    # Persistence
                    # Subtleware
                    # Synchronicity
     * APPENDIX C OBJECT-ORIENTED LANGUAGES AND VENDORS
     * APPENDIX D OBJECT-ORIENTED CASE (OOA/D/P TOOLS) AND VENDORS
          + ARTICLES, PRODUCTS, AND PAPERS ON CASE SYSTEMS
                    # Proceedings of the Workshop on the Next
                      Generation of CASE Tools (NGCT)
     * 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
                    # 54 MindFrame for Windows
                    # 55 ACE Lib, C++ Networking
                    # 56 Teaching Intro to OO Slides, T. Budd
                    # 57 Value Dependence Graphs
                    # 58 Various on OO
                    # 59 ILU OMG CORBA
                    # 60 Internet Info CDROM, including FAQs
                    # 61 Metrics
                    # 62 Amadeus, persistence
                    # 63 Chorus,Dist,RT,MicroK
                    # 64 Self Opt.
                    # 65 ORBELINE: CORBA
          + Highlights
          + Complete CORBA implementation
          + Features
          + Platforms
          + LICENSING
          + ACKNOWLEDGEMENTS
                    # 66 OO Designer CASE Tool
          + 0. Summary
                    # 67 OOTher OO CASE Tool
                    # 68 OS Papers (OO?)
                    # 69 Trellis
                    # 70 CooL-SPE
                    # 71 Contra-/Co- Variance
          + ADVERTISEMENT: This paper tries to explain
                    # 72 Quality
                    # 73 Quality
                    # 74 TRILLIUM (CMM)
                    # 75 Dylan
                    # 76 Object Domain (Shareware Case Tool)
                    # 77 Cecil
                    # 78 Meta-Case Info
                    # 79 C++ Std Temp. Lib
                    # 80 Phantom (Distr Prog)
                    # 81 Java (Distr Prog)
                    # 82 Reflection Paper
                    # 83 OZ++ (Distr Env)
                    # 84 OOA/D Example, Java
                    # 85 Envelope Engine OORAD
                    # 86 OODB Driver
                    # 87 C++ VFn Elim
                    # 88 Use Cases
     * APPENDIX F MAGAZINES, JOURNALS AND NEWSLETTERS
     * APPENDIX G COMMERCIAL OBJECT-ORIENTED LIBRARIES AND SYSTEMS
  __________________________________________________________________________

About this FAQ

Anonymous FTP Sites and Hypertext Server:
  anonymous@xxxxxxxxxxxxxxxxxxx:/pub/CompObj9.faq(.Z)     (128.135.72
.61)
  anonymous@xxxxxxxxxxxx:/pub/usenet/comp.object/*_Part_* (18.181.0.2
4 Tmp)
  http://iamwww.unibe.ch/~scg/OOinfo/FAQ/index.html       (new IAM locatio
n)

Mail Server:  (See also section 1.24)
  mail mail-server@xxxxxxxxxxxx
  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@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
e.
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.

        This document was translated by ms2html v1.8 on 10.04.96.


Other related posts:

  • » [adeel420] Object-Orientation FAQ