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=-0.3 required=5.0 tests=BAYES_00,FUZZY_DR_OZ, INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,416524a2535be642,start X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,416524a2535be642,start X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,703c2287d13b014 X-Google-Attributes: gid1108a1,public X-Google-Thread: 10a640,8972c9fc1997d044 X-Google-Attributes: gid10a640,public X-Google-Thread: f4ea4,416524a2535be642,start X-Google-Attributes: gidf4ea4,public X-Google-Thread: 114809,416524a2535be642,start X-Google-Attributes: gid114809,public From: "Fernando D. Mato Mira" Subject: Object,Subject,Verb, and Phrase (Sentence) Oriented Programming Date: 1999/06/16 Message-ID: <3766E393.3CB871F4@acm.org>#1/1 X-Deja-AN: 490010862 Content-Transfer-Encoding: 7bit References: <7k3f2n$3gk$1@news1.Radix.Net> <37662F29.F4CFB69F@iname.com> X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Organization: CSEM - Centre Suisse d'Electronique et de Microtechnique MIME-Version: 1.0 Newsgroups: comp.object,comp.lang.clos,comp.lang.dylan,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada Date: 1999-06-16T00:00:00+00:00 List-Id: "Thomas A. Russ" wrote: > I would argue that the CLOS style model would be a polymorphic form of > Verb Oriented programming. That is because the methods attach to the > generic function rather than to any of the objects involved. I would > suggest that "Sentence Oriented" would be better placed under the Verb > Oriented category. Just got back from dinner and relaxation and the thing got brewing. See below and give me your opinion [am I psychic or what? ;-)] > I also prefer the term "Sentence Oriented" to "Phrase Oriented" because Me too, and also because (for me) it's rythmically more pleasing. However, then your abbreviations would be something like SuO and SeO. That's what I meant by more practical. So I'llcontinue using SO and PO, at least for now, for brevity and clarity. *** NEW STUFF *** Although the new terminology in the way it was presented seem to serve a valid purpose, making communication and understanding easier (as phrases like "language with multimethods" or "single-dispatching OO language"), it is not clear from there whether having them to basically be synoymns for existing concepts could not be considered pointless, or whether it would be better to use the thems VO, SO and PO only in the context of OO languages, so that one could just say `a PO language" instead of `a POOO language' (although SOOO [good], VOOO, and POOO seem quite useful for religious wars ;-) ) But it's possible to do better. In fact, one can talk about VO,SO,and PO in the different dimensions categorizing a language: I'll just make up a CO (Complement Oriented) term for the time being to assign to all the theoretical cases where it could be a direct object, indirect object, or other part of speech (so maybe it's better to reserve the `P' for this?) Key: PO: Phrase Oriented VO: Verb Oriented SO: Subject Oriented CO: Complement Oriented Syntax: VO: v(s,o,i) SO: s.v(o,i) PO: s v: o with: i Shape of a fork (cuttlery), the subject can be seen in a symmetric position, not just `before the rest'. (v s o) Analogous. Whether a (imperative) sentence should begin or end with a verb or not, can change across diffenent natural languages. No language with strange `CO' syntax exists. Dispatching: VO: monomorphic SO: single dispatch (single dispatch on something that is not the `subject' in some sense (syntactic position, encapsulator) is _theoretically_ possible, it could be said `not all', but we can define that the `subject' at the dispatching level is the distinguished dispatching argument. [One could say the general case is CO, or OO in the non-syntactic (`structural') sense, but that is another story] PO: multiple dispatch Encapsulation: VO: CLOS, dylan SO: C++, Eiffel, ... PO: Cecil Fortunately, nobody encapsulates methods in the class of a `non-subject' argument. But here one could could use CO again. And SO and CO are both `structural' OO. So you can say, for example, that Dylan is `a PO (dispatching) language withVO syntax and VO encapsulation', or that Smalltalk is `a SO (dispatching) language with PO syntax (and SO encapsulation)' This is getting interesting. Now starts to take form something that could actually be called a `paper'.. Thanks for your input, -- Fernando D. Mato Mira Real-Time SW Eng & Networking Advanced Systems Engineering Division CSEM Jaquet-Droz 1 email: matomira AT acm DOT org CH-2007 Neuchatel tel: +41 (32) 720-5157 Switzerland FAX: +41 (32) 720-5720 www.csem.ch www.vrai.com ligwww.epfl.ch/matomira.html