Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!shadooby!ginosko!aplcen!haven!h.cs.wvu.wvnet.edu!cerc.wvu.wvnet.edu!kannan@babcock.cerc.wvu.wvnet.edu From: kannan@babcock.cerc.wvu.wvnet.edu (R. Kannan) Newsgroups: comp.object Subject: Re: What is OOP? Message-ID: <275@cerc.wvu.wvnet.edu.edu> Date: 17 Oct 89 21:26:09 GMT References: <5065@omepd.UUCP> Sender: news@cerc.wvu.wvnet.edu Lines: 112 This is a learners understanding of Objects in general: Well we really have to look back. ASSEMBLY LANGUAGE:( I have intenionally left out all means of comm. and related developements that occured before computers) Motivated to avoid coding in bit streams. In the beginning it must have craeted same commotion as does Objects now. Then people mastered it and wanted more power. Assembler does the job of converting Mnemonics to the bit streams that the machine can deal with. Languages: Higher Level Programming Fortrans or Basic is more fun and productive than menmonics. System guys, bear with me, please. Rather ignore me. Dont get worked up, BTW, what are you doing reading Object highest order in ABSTRACTION spectrum. For example: Organizing a Relational DBMS using Fortran would be something, I would never dream off. DATA STRUCTUTERS: PL/I and its class. Specials like APL. But the main point all of these have been a step toward more complex concepts, but less work. For example X = Y. The programmer has to accept the underlying concepts (types, precedence lvalue, rvalue, constraints all the goody goodies) and consequently not worry about MOVELONG instruction. The compiler and linker do the needful, to go bit streams. Oh yes, I can deal with RDBM with these tools. PL/I(compilers, etc) is a tool to do what I want more efficiently, understandably, easily with less pain and agony. I still have to deal with the integrity of the data structures, what can be done to them and what cannot be done to them etc. What is the next step. Naturally more complex, OBJECTS. DATA TYPES : Ada and some other languages that set the tone. Provide some integrity. Ada packaging does limit what the user can do to a certain type, but IMHO, Ada is not OO. Ada aides OOP more than many other languages. Now I can deal with a type window and deal with x,y coordinate. Still we need to deal with x,y and underlying semantics of the window. OBJECTS: Conceptually more associations (than an integer variable in Fortran.) And more levels of association. To elaborate, integer variable: ASSOCIATION DIRECT -> a value, IMPLICIT -> a type IMPLICIT -> an address IMPLICIT -> scope of the variable EXPLICIT -> symbol. An object: EXPLICIT -> symbol. EXPLICIT -> A collection of properties, slots, value holders. And each slot may have any number of values and the type are associated with each value. EXPLICIT -> Methods. EXPLICIT -> Relationship with other objects. Implicit -> there are mnany. Objects: behavior, class, named properties etc. Really an integer is an object which has one nameless property, which is its current value, belongs to the class integer. Behaves as dictated by the overloaded math operators in a programming language. Implementation point of view is a data structure with function pointers and indirections to other Objects. Objects have an internal defintions of what they depict in the real world(See we have started talking about internal and external, there has always been one, but here it is conceptual, not like the internal byte ordering or representation ). A set of activities go with the objects. And a system maintains or enforces the integrity among the objects. Really handling windows becomes easy. I have one prototype how most windows should behave, what each should old etc. I just create more as and when I need. Underlying mechanism deals with the complexity. Ever recall asking for n bytes (4 or 2) for an integer. Here we are talking more than bytes. And the system remembers and manages the complexity for us. We worry about higher level details. We get more work done. Thus Objects are just a point in Human evoultionary process. I have started on what could be more useful than Objects. But I dont have the vision that the guys who thought of Objects had. I am still in the same plane. This is simple first cut at what I understand about why? what? of an object without much of the technical details.