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,99ab4bb580fc34cd X-Google-Attributes: gid103376,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: Q: access to subprogram Date: 1996/07/03 Message-ID: #1/1 X-Deja-AN: 164009829 references: <4rb9dp$qe6@news1.delphi.com> <4re2ng$t7u@wdl1.wdl.loral.com> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada Date: 1996-07-03T00:00:00+00:00 List-Id: Mark said "If I remember right, it was felt that implementing "closures" (which is the solution to this problem) placed an unacceptable distributed overhead on programs that didn't use the feature. Also I think that half the then current Ada implementations were using "static links" and the other half were using "displays" and implementing "clousers" would have been real difficult for one of those groups (the "display" bunch I think)." The displays issue was the real reason. Closures is a difficult term because it means two totally different things, sometimes distinguished as upwards closures (easy to do), and downwards closures (more complex, typically requiring implicit heap allocation). No one seriously suggested adding downward closures to Ada 95 (although there is at least one person who loudly proclaims that this was a fatal mistake and that Ada 95 is useless as a result -- of course you can find such a person for almost any feature missing from the language :-) During discussion of the subprogram pointer issue, the term closure was often used, but in the more restricted ("upwards") sense, but this may have caused some residual confusion. (and just in case I give the wrong impression, I fully understand that full closures, preferably in conjunction with partial parametrization of higher order functions, lend tremendous expressive power -- for example Ackerman's function can be written using primitive recursion if you have these notions around), but I think the capability goes beyond the appropriate semantic level for Ada -- no doubt that statement should set of a mini-thread :-)