Path: utzoo!attcan!uunet!husc6!bloom-beacon!mit-eddie!uw-beaver!cornell!rochester!udel!princeton!siemens!drexel!rickers From: rickers@drexel.UUCP (Rick Wargo) Newsgroups: comp.lang.c++ Subject: Re: oo definition request Message-ID: <590@drexel.UUCP> Date: 13 May 88 17:20:56 GMT References: <4800021@uiucdcsm> Organization: Drexel University, Phila., Pa. Lines: 42 From article <4800021@uiucdcsm>, by shirley@uiucdcsm.cs.uiuc.edu: > I would like people to give their MINIMAL definitions of 'object > oriented programming'. Also, what MUST a language be to be called > an 'oo language'. Please also state the reference, if any, that > gave/influenced your definition. > > Peter Shirley > U of Illinois at CU Byte Magazine, Volume 11, Number 8 (August 1986) had an article written by Geoffrey Pascoe of DoD Computing Systems Research Division (MD) entitled "elements of Object-Oriented Programming." In this article he states that there are four (and possibly five) qualities a language should exhibit to be considered object oriented. 1) information hiding - insures reliability of software - reduces inter-dependencies - state of a software module contained in private variables, accessible from only within the scope of the module - most languages support information hiding, for example, static variables in functions in C 2) data abstraction - programmer defines an abstract data type which consists of an internal representation and a set of routines to access and manipulate the data 3) dynamic binding - poly-morphism - the same message can elicit a different response depending on receiver, this should be accomplished at run-time. - no need to modify existing code 4) inheritance - sub and super classing 5) and, automatic storage management - better know as garbage collection - should qualify as fifth important element Rickers ..!drexel!rickers P.S. This is an excerpt from the notes of an informal class on object- oriented programming which I had taught last year.