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: 103376,772ae8afc5db35f2 X-Google-Attributes: gid103376,public From: robert_dewar@my-dejanews.com Subject: Re: Can't export object of private type Date: 1999/02/26 Message-ID: <7b5u87$s88$1@nnrp1.dejanews.com>#1/1 X-Deja-AN: 448663341 References: <7b3f6v$lc1$1@nnrp1.dejanews.com> X-Http-Proxy: 1.0 x12.dejanews.com:80 (Squid/1.1.22) for client 205.232.38.14 Organization: Deja News - The Leader in Internet Discussion X-Article-Creation-Date: Fri Feb 26 10:49:45 1999 GMT Newsgroups: comp.lang.ada X-Http-User-Agent: Mozilla/4.04 [en] (OS/2; I) Date: 1999-02-26T00:00:00+00:00 List-Id: In article , nospam@thanks.com.au wrote: > Because *non-recursive* declarations imply a partial > ordering, a valid elaboration sequence can be determined > for them, irrespective of declaration order. I know that seems reasonable for simple cases, but this approach simply will not work, it is recursively undecidable in the general case what ordering should be used, since it depends on computational paths. Linear elaboration is a model that enormously simplifies the semantics of the language, and allows much more powerful declarational forms (since it allows a general unification of declarations and computations). It is really fundamental to the language. The example I gave was a very simple one, where you can imagine that somehow it could be statically detected to be "recursive" (note that you do NOT have a formal definition of what you mean by recursive here, and you will find that any attempt to formalize this definition will fail.) The advantage of private parts is of course the nice compartmentalization. Indeed we have on the drawing boards for GNAT a feature to have the private parts in separate files which will be very handy for target specialization and indeed for general abstraction. So that is the argument on the other side, and it is indeed a powerful one! But to try to compromise the notion of linear elaboration in Ada and replace it with a notion of dependencies will fail miserably. -----------== Posted via Deja News, The Discussion Network ==---------- http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own