It is a different style of typing Java is a strong typed language but can
use polymorphism because the type is an object not a primitive.

Thanks

Marc Aylesworth

C3I Associates 

AFRL/IFSE

Joint Battlespace Infosphere Team

525 Brooks Rd

Rome, NY 13441-4505

Tel:315.330.2422

Fax:315.330.7009

Email: [EMAIL PROTECTED]


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Ruben
Safir
Sent: Friday, August 26, 2005 3:21 AM
To: hardhats-members@lists.sourceforge.net
Subject: Re: [Hardhats-members] Re: All about programming

On Thu, 2005-08-25 at 17:39 -0400, Kevin Toppenberg wrote:
> Actually, I think I was on track after all.
> 

I'll look at the link, but I'm fairly certain I'm correct.  I've taught
it for 9 years.

The idea that something can't be polymorphic because of typing is a
little weird.  Strong typing is one of the major problems that must be
overcome with polymorphism since the data types of the arguments prevent
in C and strong typed languages to be fed the function.

In a structured programing language like C, a function is strictly
defined and without some pointer magic, always behaves exactly the same.

BTW - I don't know how mumps defines indirection, but its not the same
as the indirect reference.

Ruben

> I think was Ruben was talking about is function-calling morphism (i.e.
> an object can have multiple functions with the same name, and the one
> which is called is determined based on the pattern of the passed
> parameters.)
> 
> This link describes polymorphism similar to what I was posting.
> 
> http://www.cnread.net/cnread1/dnwl/cxsj/c/bcb/021.htm
> 
> Kevin
> 
> 
> On 8/25/05, Aylesworth Marc A Ctr AFRL/IFSE <[EMAIL PROTECTED]>
wrote:
> > Polymorphism would be hard in Mumps because it is not strongly typed.
The
> > java implements it is to find out what class is calling it and then
> > determines the correct function to call inheritance and polymorphism is
> > close but is determined at different times (one at compile, one at
> > runtime).
> > 
> > Thanks
> > 
> > Marc Aylesworth
> > 
> > C3I Associates 
> > 
> > AFRL/IFSE
> > 
> > Joint Battlespace Infosphere Team
> > 
> > 525 Brooks Rd
> > 
> > Rome, NY 13441-4505
> > 
> > Tel:315.330.2422
> > 
> > Fax:315.330.7009
> > 
> > Email: [EMAIL PROTECTED]
> > 
> > 
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On Behalf Of Kevin
> > Toppenberg
> > Sent: Thursday, August 25, 2005 5:03 PM
> > To: hardhats-members@lists.sourceforge.net
> > Subject: [Hardhats-members] Re: All about programming
> > 
> > OK.  So I was quite a bit off on my understanding of the term
polymorphism.
> > 
> > I have used this functionality often in c++, but I don't think that
> > Delphi/Pascal has it.
> > 
> > I guess what I was talking about, then, was simple inheritence.  I
> > don't know if I could implement polymorphism with my scheme.  One
> > problem is that there is no typing.  I guess one could call in
> > intermediate function that counts the number of non-empty parameters
> > passed, and then use a table to figure out which final function to
> > call.  But agin, it wouldn't be neat.
> > 
> > Kevin
> > 
> > 
> > On 8/25/05, Ruben Safir <[EMAIL PROTECTED]> wrote:
> > > A polymorphic function is one which changes its behavior depending on
> > > the type and number arguments  it receives.  It's useful because it is
> > > easier for the stupid humans to remember the Application programming
> > > interface.  With polymorphism and operator overloading, you can do
some
> > > amazing tricks for the stupid humans.
> > > 
> > > At its most fundamental level a function and accessory function might
> > > behave like this
> > > 
> > > bird->species("Bluejay"); #One Arguement is sent.  The species has
been
> > > set to Bluejay through method "species" which might also cause this
> > > instance of your object to change its color, size and other
> > > charactoristics
> > > 
> > > 
> > > $what_kind = bird->species; #no arguements
> > > 
> > > print $what_kind; #stdout is BlueJay
> > > 
> > > Ruben
> > >  
> > > 
> > > 
> > > On Thu, 2005-08-25 at 16:43, Kevin Toppenberg wrote:
> > > > On 8/25/05, Greg Woodhouse <[EMAIL PROTECTED]> wrote:
> > > > > How do you achieve polymorphic behavior? A few ideas occur to me
such
> > > > > as having a "CREATE" operator that sets the methods to the
> > appropriate
> > > > > implementations for the runtime type. Another is to maintain a
table
> > of
> > > > > object IDs and classes and always have methods invoked through a
> > common
> > > > > dispatch manager, but nothing really seems very clean.
> > > > 
> > > > I am no OO expert.  But I think that polymorphic behavior means that
> > > > if you have an object heirarchy like this:
> > > > Bird
> > > >   +- Jay
> > > >        +-Blue
> > > >         +-Gray
> > > > 
> > > > And then having two objects, one Gray and one Blue, placed into
> > > > variables p1 and p2.  Then calling a ".chirp" function, would evoke
> > > > two separate functions--assuming that the two objects had been given
> > > > different chirp functions.
> > > > 
> > > > Assuming that my understanding is correct, then I would probably set
> > > > up my "object" by creating the parent object, then calling the setup
> > > > procedure for each subsequent child in turn (i.e. merging the array
> > > > first with the parent object).  Child functions would then overwrite
> > > > the parent's.  Thus one might end up with an array-object that looks
> > > > like this
> > > > 
> > > > Bird("sClass")="Aves"
> > > > Bird("bCanFly")=1
> > > > Bird("fncChirp")="w ""squawk"",!"
> > > >        
> > > > Jay("sClass")="Aves"
> > > > Jay("sFamily")="Corvidae"
> > > > Jay("sOrder")="Passeriformes"
> > > > Jay("bCanFly")=1
> > > > Jay("fncChirp")=""  <-- no behavior here.
> > > > 
> > > > BlueJay("sClass")="Aves"
> > > > Bl;ueay("sFamily")="Corvidae"
> > > > BlueJay("sOrder")="Passeriformes"
> > > > BlueJay("sSpecies")="Cyanocitta"
> > > > BlueJay("bCanFly")=1
> > > > Bird("fncChirp")="w ""Jeer Jeer"",!
> > > > 
> > > > GrayJay("sClass")="Aves"
> > > > GrayJay("sFamily")="Corvidae"
> > > > GrayJay("sOrder")="Passeriformes"
> > > > GrayJay("sSpecies")="Perisoreus"
> > > > GrayJay("bCanFly")=1
> > > > Bird("fncChirp")="w ""Ge-att Ge-att"",!"
> > > > 
> > > > Then when I do this:
> > > > 
> > > > p(1)=$name(GrayJay)
> > > > p(2)=$name(BlueJay)
> > > > 
> > > > I can then use:
> > > > for i=1:1:2 xecute @p(i)@("fncChirp")
> > > > 
> > > > Jeer Jeer
> > > > Ge-att Ge-att
> > > > 
> > > > I think this shows how inheritence and polymorphism can be
> > > > implemented.  But again, my teminology may be off.
> > > > 
> > > > Kevin
> > > > 
> > > > 
> > > > 
> > > > > 
> > > > > Anyway, I remember that, and I think it's a good idea.
> > > > > 
> > > > > --- Kevin Toppenberg <[EMAIL PROTECTED]> wrote:
> > > > > 
> > > > > > A while back I posted code that used globals to store
object-like
> > > > > > data.  Once can put functions (or references to functions) into
a
> > > > > > string (stored in the object) and then executed with the
"xecute"
> > > > > > command.
> > > > > > 
> > > > > > Thus one could shoe-horn object orientated behavior from M
> > > > > > 
> > > > > > Kevin
> > > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > ===
> > > > > Gregory Woodhouse  <[EMAIL PROTECTED]>
> > > > > 
> > > > > "Design quality doesn't ensure success, but design failure can
ensure
> > > > > failure."
> > > > > 
> > > > > --Kent Beck
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > -------------------------------------------------------
> > > > > SF.Net email is Sponsored by the Better Software Conference & EXPO
> > > > > September 19-22, 2005 * San Francisco, CA * Development Lifecycle
> > > Practices
> > > > > Agile & Plan-Driven Development * Managing Projects & Teams *
Testing
> > &
> > > QA
> > > > > Security * Process Improvement & Measurement *
> > > http://www.sqe.com/bsce5sf
> > > > > _______________________________________________
> > > > > Hardhats-members mailing list
> > > > > Hardhats-members@lists.sourceforge.net
> > > > > https://lists.sourceforge.net/lists/listinfo/hardhats-members
> > > > >
> > > > 
> > > > 
> > > > -------------------------------------------------------
> > > > SF.Net email is Sponsored by the Better Software Conference & EXPO
> > > > September 19-22, 2005 * San Francisco, CA * Development Lifecycle
> > > Practices
> > > > Agile & Plan-Driven Development * Managing Projects & Teams *
Testing &
> > > QA
> > > > Security * Process Improvement & Measurement *
> > http://www.sqe.com/bsce5sf
> > > > _______________________________________________
> > > > Hardhats-members mailing list
> > > > Hardhats-members@lists.sourceforge.net
> > > > https://lists.sourceforge.net/lists/listinfo/hardhats-members
> > > 
> > > 
> > > 
> > > -------------------------------------------------------
> > > SF.Net email is Sponsored by the Better Software Conference & EXPO
> > > September 19-22, 2005 * San Francisco, CA * Development Lifecycle
> > Practices
> > > Agile & Plan-Driven Development * Managing Projects & Teams * Testing
&
> > QA
> > > Security * Process Improvement & Measurement *
http://www.sqe.com/bsce5sf
> > > _______________________________________________
> > > Hardhats-members mailing list
> > > Hardhats-members@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/hardhats-members
> > >
> > 
> > 
> > -------------------------------------------------------
> > SF.Net email is Sponsored by the Better Software Conference & EXPO
> > September 19-22, 2005 * San Francisco, CA * Development Lifecycle
Practices
> > Agile & Plan-Driven Development * Managing Projects & Teams * Testing &
QA
> > Security * Process Improvement & Measurement *
http://www.sqe.com/bsce5sf
> > _______________________________________________
> > Hardhats-members mailing list
> > Hardhats-members@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/hardhats-members
> > 
> > 
> > -------------------------------------------------------
> > SF.Net email is Sponsored by the Better Software Conference & EXPO
> > September 19-22, 2005 * San Francisco, CA * Development Lifecycle
Practices
> > Agile & Plan-Driven Development * Managing Projects & Teams * Testing &
QA
> > Security * Process Improvement & Measurement *
http://www.sqe.com/bsce5sf
> > _______________________________________________
> > Hardhats-members mailing list
> > Hardhats-members@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/hardhats-members
> >
> 
> 
> -------------------------------------------------------
> SF.Net email is Sponsored by the Better Software Conference & EXPO
> September 19-22, 2005 * San Francisco, CA * Development Lifecycle
Practices
> Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
> Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
> _______________________________________________
> Hardhats-members mailing list
> Hardhats-members@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hardhats-members



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Hardhats-members mailing list
Hardhats-members@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hardhats-members


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Hardhats-members mailing list
Hardhats-members@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hardhats-members

Reply via email to