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.8 required=5.0 tests=BAYES_00, BUG6152_INVALID_DATE_TZ_ABSURD autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,bc1361a952ec75ca X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-08-15 12:41:11 PST Path: archiver1.google.com!news2.google.com!newsfeed.google.com!newsfeed.stanford.edu!news.ems.psu.edu!news.cis.ohio-state.edu!news.maxwell.syr.edu!feed2.news.rcn.net!rcn!dca6-feed2.news.digex.net!intermedia!netnews.jhuapl.edu!not-for-mail From: Jonathan DeSena Newsgroups: comp.lang.ada Subject: Re: Ada and pointers Date: Wed, 15 Aug 2001 15:25:01 +0228 Organization: JHU/APL Message-ID: <9lei8f$gmu$1@houston.jhuapl.edu> References: <1ope7.5943$6R6.582900@news1.cableinet.net> <9ldto7$9pg$1@nh.pace.co.uk> NNTP-Posting-Host: desenjt1.jhuapl.edu Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit X-Trace: houston.jhuapl.edu 997903439 17118 128.244.68.35 (15 Aug 2001 19:23:59 GMT) X-Complaints-To: usenet@houston.jhuapl.edu NNTP-Posting-Date: 15 Aug 2001 19:23:59 GMT User-Agent: KNode/0.6.1 Xref: archiver1.google.com comp.lang.ada:11960 Date: 2001-08-15T19:23:59+00:00 List-Id: Marin David Condic wrote: > Well, the statement is true enough because after all, dynamic allocation > and the things done by pointers are really a kind of fiction. Memory is > basically one big array that you index with integers, so obviously, a > non-dynamic/non-pointer solution must exist. Anything you do with pointers > could be implemented with a one dimensional array and integer indexes - > because that's what the compiler translates it into. > > However, that doesn't mean that one should avoid access types in all > cases. Sometimes it is the most natural expression of the solution. Its > just that you should generally use them sparingly and isolate them as best > you can. Ada lets you do this rather well. (Some OOP-style programming > relies heavily on access types so you've got to make design trade offs - > use the OOP for its benefits at the risk of having lots more pointers > flying around or avoid/isolate the pointers and implement a solution that > may not be as extensible.) Access types aren't a "bad" thing - you just > don't want to be forced into using them at every conceivable turn as you > must in C/C++. > > MDC > -- Also note that there are some circumstances in which an access type is effectively required. Cohen's "Ada as a Second Language" lists several in section 8.5 I believe. As an Ada newbie, I have already run across a few of these situations, namely: recursive types and variable sized arrays (or to paraphrase Cohen, "simulating variable sized arrays." I suppose I could have framed the solution differently to avoid these cases, but frankly, I'm not exactly sure how. As an aside, I have had some limited experience with FORTRAN code which uses a giant array with many integer index pointers into it. It even has its own memory management of this array, of sorts. I must say that trying to follow this code is no fun at all, even though it is heavily documented. It seems to me, the original coders of many years ago could really have used a language like Ada95. jtd