[Prev][Next][Index][Thread]
Re: Language question, a little bit OT
Stefan Schmiedl wrote in message <20010804225457.B28303@workhorse>...
>One thing I have already learned:
>Don't confuse dispatching with inheritance, even if it is Saturday night
:-9
>
>From: Scott McKay <swm@mediaone.net>
>To: To info-dylan@ai.mit.edu
>Date: 2001-08-04 15:15
>Subject: Re: Language question, a little bit OT
>
>>
>> C++ is MI, but doesn't do multiple dispatch. It does do overloading,
>> which is sort of like MD at compile time.
>
>hmmm ... still confused ... after thinking about Michael's reply,
>I have learned that:
>
> - multiple dispatch is selecting different methods using all arguments
> - dynamic dispatch is choosing from available methods at runtime
>
>so you are saying that C++ does use single dispatch, i.e. only on the
>first argument. I can live with that.
>
>Dylan and Common Lisp do multiple dispatch in this context.
>Do they do dynamic dispatch, too? I think so.
The language semantics is that all method selection is done
at run-time. In practice, Dylan compilers do much better than
that; most of the code I know of gets most dispatch (90%)
done at compile-time.
>>
>> Java only does single dispatch, but also with overloading. It
>> most definitely does not support MD.
>
>your MD seems to coincide with my DD, yes?
>
>> Note that the difference
>> between message passing and single argument dispatch is
>> only syntax.
>
>agreed.
>
>> >
>> >Does anyone know a language with both message passing and MI?
>> >Or is there some fundamental reason that these two don't match?
>> >
>>
>> Both Flavors and New Flavors supports message passing and MI.
>> New Flavors, in addition, supported generic functions, but only
>> dispatching on a single argument.
>
>ok, putting them on my list for next year's new language.
>As I have had no contact yet, are they in "real" use or
>"just academic"?
>
New Flavors is the intellectual predecessor of CLOS.
Old Flavors is the intellectual successor of Smalltalk.
>>
>> Message passing is a special case of a generic function that
>> dispatches on the first argument, with a distinguished syntax.
>> It would be easy to write a 'send' macro in Dylan to do this.
>
>well, spoiled by common lisp, *no* dylan macro is easy for me :-)
>
>Stefan
>
>--
>Stefan Schmiedl
>EDV-Beratung, Programmierung, Schulung
>Loreleystr. 5, 94315 Straubing, Germany
>Tel. (0 94 21) 74 01 06 Fax (0 94 21) 74 01 21
>Public Key: http://xss.de/stefan.public
>
>Change is Constant
Follow-Ups:
References: