From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public X-Google-Thread: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public From: kennel@lyapunov.ucsd.edu (Matt Kennel) Subject: Re: Static vs. Dynamic typing again (was Re: OO, C++, and something much better!) Date: 1997/02/10 Message-ID: <5dmj1v$jhk@news1.ucsd.edu>#1/1 X-Deja-AN: 217743977 references: <32E7E08A.3079@parcplace.com> <32E8BCE3.3029@calfp.com> <01bc0a1e$faed8ce0$c318b993@jarvisb> <5covaj$l0@boursy.news.erols.com> followup-to: comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object organization: The University of California at San Diego newsgroups: comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object Date: 1997-02-10T00:00:00+00:00 List-Id: Piercarlo Grandi (piercarl@sabi.demon.co.uk) wrote: : >>> "feldmand" == Damon Feldman writes: : >> I think it's a bit misleading to say that Smalltalk is dynamically : >> typed versus Ada/C++/etc being statically typed. I mean, Smalltalk : >> does not check the type of an object when passing it as a parameter : feldmand> Statically typed means that types are *determined* at compile : feldmand> time. : Consider: : class A { ... }; class B : A { ... }; : class A a; class B b; class B *bp; : bp = (randomNumber() > 0.5) ? &a : &b; : Here there is no question that 'bp' has a static type constraint, and : also no question that it is impossible statically to infer the type of : object denoted by 'bp' after the assignment above. I don't know for sure, but what about a system where a 'routine feature' could be added to a class during the execution of a program, so that at one point in time, an object of such class would not be compatible with some interface (e.g. not ''type'' T) but at a later time the 'same object' (forbearing us the common delusion that objects have identity :) ) would be compatible with that interface.