Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!lll-winken!uunet!pdn!rnms1!alan From: alan@rnms1.paradyne.com (Alan Lovejoy) Newsgroups: comp.lang.misc Subject: Re: Polymorphism Message-ID: <5973@pdn.paradyne.com> Date: 23 Apr 89 07:16:23 GMT References: <5957@pdn.paradyne.com< <1810@etive.ed.ac.uk> Sender: news@pdn.paradyne.com Reply-To: alan@rnms1.paradyne.com (Alan Lovejoy) Organization: AT&T Paradyne, Largo, Florida Lines: 106 In article <1810@etive.ed.ac.uk< nick@lfcs.ed.ac.uk (Nick Rothwell) writes: alan@rnms1.paradyne.com (Alan Lovejoy) writes: <>-- Definition Of Polymorphism -- <> <>Full polymorphism means that any component or aspect of a program, program <>component or programming language must behave as a value. Any and all <>values must be subject to inspection, modification, storage in memory, <>usage as a component part of some composite value, usage as a paremeter, <>usage as an operand in an expression, being computed as the result of <>evaluating an expression or function, and (re)definition of its form, structure, <>content or name. The protocol for invoking these common operations must be <>the same for all values, regardless of type. To say the same thing more concretely: numbers, characters, data types, <>procedures, variables, addresses, blocks, execution contexts, name bindings, <>scopes, processes and the number of bits in an integer must all be "first <>class objects." < <...although a lot of these things (addresses? blocks?) don't exist in some -- Definition of Abstraction -- <> <>Abstraction is the process of discovering and/or expressing what is INVARIANT, <>constant and organic in a system by taking out, leaving out or not mentioning <>that which is changing, temporary or accidental.