* Access to subprograms
@ 1995-03-20 16:19 Fred Hosch
1995-03-21 11:12 ` Robert Dewar
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Fred Hosch @ 1995-03-20 16:19 UTC (permalink / raw)
From my casual and uninformed reading of the RM, it
seems that something like "+"'Access is legal, even,
heaven forbid, for a predefined instance of "+".
Can anyone provide a pointer?
Thanks.
---Fred Hosch
Comp Sci/University of New Orleans
--
Fred Hosch fred@cs.uno.edu
Computer Science Department (504)-286-6594
University of New Orleans (504)-286-7228 (fax)
New Orleans, LA 70148
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Access to subprograms
1995-03-20 16:19 Access to subprograms Fred Hosch
@ 1995-03-21 11:12 ` Robert Dewar
1995-03-21 14:47 ` Tucker Taft
1995-03-22 14:56 ` Norman H. Cohen
2 siblings, 0 replies; 6+ messages in thread
From: Robert Dewar @ 1995-03-21 11:12 UTC (permalink / raw)
Fred, you can relax, "+" ' Access is not allowed for predefined + because
this operator has convention Intrinsic, and one effect of this convention
(actually almost the ONLY effect) is to forbid 'Access.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Access to subprograms
1995-03-20 16:19 Access to subprograms Fred Hosch
1995-03-21 11:12 ` Robert Dewar
@ 1995-03-21 14:47 ` Tucker Taft
1995-03-22 14:56 ` Norman H. Cohen
2 siblings, 0 replies; 6+ messages in thread
From: Tucker Taft @ 1995-03-21 14:47 UTC (permalink / raw)
Fred Hosch (fred@play.uno) wrote:
: From my casual and uninformed reading of the RM, it
: seems that something like "+"'Access is legal, even,
: heaven forbid, for a predefined instance of "+".
No, 'Access is not permitted for subprograms with an "intrinsic"
calling convention, which includes all implicitly declared subprograms,
which includes all predefined operators.
(To be honest ;-), implicitly declared dispatching operations
*do* allow 'Access, since these need to exist as separately
callable subprograms anyway to support dispatching -- and
this includes the predefined "=" on tagged types.)
: Can anyone provide a pointer?
See RM95 3.10.2(32), 6.3.1(4-11).
: Fred Hosch fred@cs.uno.edu
: Computer Science Department (504)-286-6594
: University of New Orleans (504)-286-7228 (fax)
: New Orleans, LA 70148
-Tucker Taft stt@inmet.com
Intermetrics, Inc.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Access to subprograms
1995-03-20 16:19 Access to subprograms Fred Hosch
1995-03-21 11:12 ` Robert Dewar
1995-03-21 14:47 ` Tucker Taft
@ 1995-03-22 14:56 ` Norman H. Cohen
1995-03-28 16:25 ` Tucker Taft
2 siblings, 1 reply; 6+ messages in thread
From: Norman H. Cohen @ 1995-03-22 14:56 UTC (permalink / raw)
In article <FRED.95Mar20101937@play.uno>, fred@play.uno (Fred Hosch) writes:
|> From my casual and uninformed reading of the RM, it
|> seems that something like "+"'Access is legal, even,
|> heaven forbid, for a predefined instance of "+".
It's prohibited by RM95 6.3.1, paragraphs 4, 7, and 11. (Predefined "+"
operators have convention Intrinsic, and 'Access is prohibited for
subprograms with this convention.) Instead, you can write
function My_Wrapper (Left, Right: Integer) return Integer is
begin
return Left + Right;
end My_Wrapper;
(or similarly for some other numeric type) and write My_Wrapper'Access.
But why "heaven forbid"? It would have been easy for the compiler to
generate a wrapper function like this automatically and invisibly, and it
strikes me as a gratuitous nuisance to make the programmer go through the
ritual. It also makes the language less uniform.
|> Can anyone provide a pointer?
Cute pun.
|> Thanks.
You're welcome.
--
Norman H. Cohen ncohen@watson.ibm.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Access to subprograms
1995-03-22 14:56 ` Norman H. Cohen
@ 1995-03-28 16:25 ` Tucker Taft
1995-04-03 0:00 ` Sean McNeil
0 siblings, 1 reply; 6+ messages in thread
From: Tucker Taft @ 1995-03-28 16:25 UTC (permalink / raw)
Norman H. Cohen (ncohen@watson.ibm.com) wrote:
: In article <FRED.95Mar20101937@play.uno>, fred@play.uno (Fred Hosch) writes:
: |> From my casual and uninformed reading of the RM, it
: |> seems that something like "+"'Access is legal, even,
: |> heaven forbid, for a predefined instance of "+".
: It's prohibited by RM95 6.3.1, paragraphs 4, 7, and 11. (Predefined "+"
: operators have convention Intrinsic, and 'Access is prohibited for
: subprograms with this convention.) Instead, you can write
: function My_Wrapper (Left, Right: Integer) return Integer is
: begin
: return Left + Right;
: end My_Wrapper;
: (or similarly for some other numeric type) and write My_Wrapper'Access.
: But why "heaven forbid"? It would have been easy for the compiler to
: generate a wrapper function like this automatically and invisibly, and it
: strikes me as a gratuitous nuisance to make the programmer go through the
: ritual. It also makes the language less uniform.
.. because generating things automatically and invisibly is contrary to
the philosophy of a systems implementation language, IMHO. Invisible
things interfere with a systems programmer's ability to estimate
accurately the relative time and space performance of various features.
For example, would it be appropriate to use "+"'Access multiple times,
or would this result in multiple copies of such an "invisible" wrapper?
The more things happen "invisibly," the more the time and
space performance is compiler-dependent, rather than being
dependent on the intrinsic properties of the source program and the
target machine.
[By the way, this is one reason I don't like Ada's "holey"
enumeration types, since they create hidden compiler-dependent
time and space overhead in surprising places.]
Predictable performance was an important goal of the Ada 95 features;
occasionally this means the programmer has to work a little harder.
: Norman H. Cohen ncohen@watson.ibm.com
-Tucker Taft stt@inmet.com
Intermetrics, Inc.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Access to subprograms
1995-03-28 16:25 ` Tucker Taft
@ 1995-04-03 0:00 ` Sean McNeil
0 siblings, 0 replies; 6+ messages in thread
From: Sean McNeil @ 1995-04-03 0:00 UTC (permalink / raw)
In article <D65sAw.3AI@inmet.camb.inmet.com> stt@spock.camb.inmet.com (Tucker Taft) writes:
> : |> From my casual and uninformed reading of the RM, it
> : |> seems that something like "+"'Access is legal, even,
> : |> heaven forbid, for a predefined instance of "+".
>
> : It's prohibited by RM95 6.3.1, paragraphs 4, 7, and 11. (Predefined "+"
> : operators have convention Intrinsic, and 'Access is prohibited for
> : subprograms with this convention.) Instead, you can write
>
> : function My_Wrapper (Left, Right: Integer) return Integer is
> : begin
> : return Left + Right;
> : end My_Wrapper;
>
[...]
Does a renamed Predefined "+" operator also have convention Intrinsic status?
i.e.
function My_Plus(Left, Right : Integer) return Integer renames "+";
I assume it is, but I'd thought I'd ask.
Sean McNeil
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~1995-04-03 0:00 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1995-03-20 16:19 Access to subprograms Fred Hosch
1995-03-21 11:12 ` Robert Dewar
1995-03-21 14:47 ` Tucker Taft
1995-03-22 14:56 ` Norman H. Cohen
1995-03-28 16:25 ` Tucker Taft
1995-04-03 0:00 ` Sean McNeil
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox