Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site ucla-cs.ARPA Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!godot!harvard!talcott!panda!genrad!decvax!ittvax!dcdwest!sdcsvax!sdcrdcf!trwrb!trwrba!cepu!ucla-cs!ekrell From: ekrell@ucla-cs.UUCP Newsgroups: net.lang,net.lang.st80 Subject: Re: Definition of Buzzwords: "Object-Oriented" Message-ID: <3540@ucla-cs.ARPA> Date: Wed, 30-Jan-85 00:13:36 EST Article-I.D.: ucla-cs.3540 Posted: Wed Jan 30 00:13:36 1985 Date-Received: Sat, 2-Feb-85 09:45:19 EST References: <4288@ucbvax.ARPA> <3366@ucla-cs.ARPA> <73@gitpyr.UUCP> Distribution: net Organization: UCLA Computer Science Department Lines: 35 Xref: watmath net.lang:1343 net.lang.st80:171 > >< > > I read this somewhere: a procedure-oriented language represents the > > behavior of a program by describing the effect of applying procedures > > to different kinds of arguments (here procedures being a broad term > > including assignments, arithmetic operators, etc). > > An object-oriented language does it by describing the effect of applying > > different procedures (methods) to a specific object. > > > > The definition is lacking two important things: the definition of 'arguments' > and the definition of 'objects'. After all, an argument could, in some > contexts be considered an object. I've read several definitions of what people think is object-orientation and I think that most of them confuse it with ADTs (Abstract Data Types), which are "objects" in the sense that they represent physical or abstract objects such as a person or a stack, where the specification of the operations on these objects is separated from their implementation. This is nice (Information Hiding principle, etc) but that doesn't make a language object-oriented. Ada and Modula-2 have all these goodies but that doesn't make them object-oriented languages. I think people who know SMALLTALK would agree with me. It is true that there's an analogy in applying a method to an object and an operation to an ADT, but the way an expression "f(x)" would be evaluated in a object-oriented language is "look at the type of object x is; find a method called f defined for that object and apply it to x". In a procedure-oriented language it would be "look at the definition of f and apply f to x". It's clear, then, that an object-oriented language has overloading since you could have methods with the same name for different objects. However, the presence of overloading in a language (like ADA) doesn't mean it is object-oriented... -- Eduardo Krell UCLA Computer Science Department ekrell@ucla-locus.arpa ..!{sdcrdcf,ihnp4,trwspp,ucbvax}!ucla-cs!ekrell