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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,21960280f1d61e84 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Newsgroups: comp.lang.ada Subject: Re: GC in Ada References: <1169636785.504223.139630@j27g2000cwj.googlegroups.com> <3pejpgfbki.fsf@hod.lan.m-e-leypold.de> <45c99c24$1@news.post.ch> From: Markus E Leypold Organization: N/A Date: Thu, 08 Feb 2007 10:49:59 +0100 Message-ID: User-Agent: Some cool user agent (SCUG) Cancel-Lock: sha1:VlEzW5sqFwRQ2NTTb0hxUxiPcPs= MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii NNTP-Posting-Host: 88.72.239.230 X-Trace: news.arcor-ip.de 1170927890 88.72.239.230 (8 Feb 2007 10:44:50 +0200) X-Complaints-To: abuse@arcor-ip.de Path: g2news2.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.arcor-ip.de!news.arcor-ip.de!not-for-mail Xref: g2news2.google.com comp.lang.ada:9186 Date: 2007-02-08T10:49:59+01:00 List-Id: Maciej Sobczak writes: > Markus E Leypold wrote: >> Actually I think, real OO (as opposed to tagged types) need GC and >> unbounded life time of objects. That's indeed all OO is about. > That is quite novel definition of OO. Any references? Ian Graham: "Object-Oriented Methods: Principles & Practice". Footnotes and general comments there make that quite clear I think. (But I can't quote chapter and verse here, since I DON'T intend to spent the rest of the morning with researching literature). I remeber that this was not the first source which noted that a delete operator is quite contrary to the spirit of stateful OOP (as opposed to the functional OO models proposed by Abadi and others (Cardelli?). And then of course there is me, myself, as a source :-). The reasoning fo the assertion above is basically that OO is about having (projected) views of a total system. In no view you can say that an object leaves the view -- you can only say that it becomes unimportant for the view (goes into the kernel of the projection). And that is so for all views -- whose sum only gives the complete system. Then (when viewing the whole system) you can decide where to delete. Object deletion is a global property/function. Rooting it in any subsystem will destroy modularity in the OO sense (which is different from modularity in the modula2 or Ada-sense, which is derived from the ideas of structured programming). But note that I'm not really interested in discussing these propositions. Either you profit from it or you don't -- I don't think that it is easy to see what I mean and it was hard for me to get that insights at the beginning (since there is really lots of bad literature on OO (mostly the ad-hoc approach) and few usable formal or semi-formal approaches). Discussing those on a serious level would take lots of time. So I have just to assert my guru status here for lack of more time :-). Regards -- Markus