From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f43e6,5ac12f5a60b1bfe X-Google-Attributes: gidf43e6,public X-Google-Thread: 103376,5ac12f5a60b1bfe X-Google-Attributes: gid103376,public X-Google-Thread: 101deb,f96f757d5586710a X-Google-Attributes: gid101deb,public From: Richard Riehle Subject: Re: PL/I Versus Ada (Was: Arianne ...) Date: 1996/08/28 Message-ID: #1/1 X-Deja-AN: 177613650 references: <4t9vdg$jfb@goanna.cs.rmit.edu.au> <4tiu6e$kpm@news2.cais.com> <4up8pi$lvi@goanna.cs.rmit.edu.au> <32106B34.57DB@lmtas.lmco.com> <4vfmge$2je@overload.lbl.gov> content-type: TEXT/PLAIN; charset=US-ASCII organization: National University, San Diego mime-version: 1.0 newsgroups: comp.software-eng,comp.lang.ada,comp.lang.pl1 Date: 1996-08-28T00:00:00+00:00 List-Id: On 21 Aug 1996, Tony Konashenok wrote: > What exactly is an "object-oriented version" of a language? Why is PL/I > not object-oriented? IMHO, one can do object-oriented programming even in > assembly language, given enough skill and dedication. Too many people are > confusing object-oriented programming as a method with the usage of > C++/Ada-specific features. Well you may have your own idea of object-oriented programming. We usually think of encapsulated classes which support extensible inheritance, dynamic binding, and polymorphism. We ordinarily do not consider the heroic efforts of a star programmer as being sufficient to implement the method. There are specific, widely-accepted criteria for object-oriented programming which are not language-specific. So I will rephrase the question. Is there a version of PL/I which: 1) has explicit syntactic support for extensible inheritance of encapsulated classes (i. e., supports Meyer's "open/closed principle") ? 2) supports dynamic selection of class object based on run-time evaluation of class membership (dynamic binding and polymorphism)? 3) permits the definition of a type/class with hidden data structures that are visible only via their exported methods? (a la "programming by contract")? 4) allows the definition of "abstract classes" (deferred classes) for implementation, through extensible inheritance and polymorphism, of variants of that class. This should include the capability for late binding? None of these characteristics are language-specific, but each is included in any language defined, by contemporary usage, as an object-oriented programming language. How does PL/I compare? Richard Riehle