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=-0.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,dbcfe2b0a74da57e X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!postnews.google.com!57g2000hsv.googlegroups.com!not-for-mail From: Maciej Sobczak Newsgroups: comp.lang.ada Subject: Re: Inherited Methods and such Date: Thu, 20 Sep 2007 13:45:19 -0700 Organization: http://groups.google.com Message-ID: <1190321119.206313.65290@57g2000hsv.googlegroups.com> References: <1190039166.449906.15070@g4g2000hsf.googlegroups.com> <1190041908.492024.263110@19g2000hsx.googlegroups.com> <1190060534.958182.51800@d55g2000hsg.googlegroups.com> <87tzptuhku.fsf@ludovic-brenta.org> <1190125656.071013.303640@22g2000hsm.googlegroups.com> <1ds7l1l7oeyrx.1cpsvrpkikour.dlg@40tude.net> <1190147965.676457.123000@d55g2000hsg.googlegroups.com> <1co37tau98gct.axsglmqh0xu9$.dlg@40tude.net> <1190213376.707449.146640@g4g2000hsf.googlegroups.com> <1fl2wnziigxfd.1fjbag2hh8sbc$.dlg@40tude.net> <1190239986.762473.204290@k79g2000hse.googlegroups.com> <1rw45b3rmvmcr$.1df4wst5oknbl$.dlg@40tude.net> <1190296353.624737.150940@y42g2000hsy.googlegroups.com> <11m13st1f92kf$.m8s6y8mc8ebk.dlg@40tude.net> NNTP-Posting-Host: 85.3.247.158 Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" X-Trace: posting.google.com 1190321120 18067 127.0.0.1 (20 Sep 2007 20:45:20 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Thu, 20 Sep 2007 20:45:20 +0000 (UTC) In-Reply-To: <11m13st1f92kf$.m8s6y8mc8ebk.dlg@40tude.net> User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6,gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: 57g2000hsv.googlegroups.com; posting-host=85.3.247.158; posting-account=ps2QrAMAAAA6_jCuRt2JEIpn5Otqf_w0 Xref: g2news2.google.com comp.lang.ada:2054 Date: 2007-09-20T13:45:19-07:00 List-Id: On 20 Wrz, 18:22, "Dmitry A. Kazakov" wrote: > >> If you say that an object of the type T1 can take values of the type T2, > >> such that not T1<:T2, then either: > > > What is T1<:T2 ? > > Subsumption. This I can guess. What is the direction? > > Whatever it is, your assumptions are still wrong. > > There is no point in discussing the concept of "taking the value" > > here, because the value is meaningful in the context of its type only. > > Even better, so objects have no values, but many types... No. Object has one value. > > There is no such thing as object of type T taking new value, nor the > > value changing type. Neither value nor type is constant here. They > > flow together as the object is progressively constructed/destructed > > and every single moment in time the object has a valid value of *some* > > type. > > Right, this is called untyped. The rest is handwaving. No, this is strongly typed, because the type is determined declaratively and can be deduced without examining the value. The value has to always match the type, which is known a priori. But I agree that there is some handwaving in this discussion. > > Every single moment the object has one type. But the time is > > passing and the object's classification flows together with time. > > Nope, the result is another object, *because* you cannot change the type. It is always the same object, on the basis of its identifier, which is invariant. By indentifier I take the address of the object. And yes, the type *changes* while the object traverses along the chain of constructions/destructions. > Even if you cast and per chance the address of the result is same (why > should anybody care?), it is a different object. No, it's the same object. It's just fattening. Unless in your world people change their identity after fattening. :-) > Otherwise, you would have > to drop the concept of single type and go untyped. If you limit yourself to these two options only, it's your limitation, not mine. I see a place for dynamically changing types. It is *single* in any given moment. It is still typed, because it is determined a priori, not by actual value. I *know* how the type will change without looking at the value. It is completely different from assigning whatever value to some object and saying that it changed its type as a result of this. This is the point that you seem to be missing. -- Maciej Sobczak http://www.msobczak.com/