comp.lang.ada
 help / color / mirror / Atom feed
* Idea for Ada 200x: Arguments that are procedures
@ 1998-07-03  0:00 Van Snyder
  1998-07-02  0:00 ` Robert Dewar
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Van Snyder @ 1998-07-03  0:00 UTC (permalink / raw)



Procedures that are arguments are restricted in Ada because of the
possibility of copying the pointer to somewhere that has a longer
lifetime than the up-level environment of the procedure.

If an additional attribute were added to formal arguments to indicate
that taking a copy of a procedure pointer is prohibited, restrictions
on procedures that could be arguments could be reduced.

Since "limited" already puts restrictions on assignment, how about
using that word for the purpose of declaring a formal argument for
which it's prohibited to take a copy.  It could only be used to
access a procedure, or passed as an actual argument to a formal
argument that also had the "limited" attribute.

This would let me have, for example, a library package for quadrature
or minimization or differential equations or ... that exports a type
for a procedure pointer argument, and use a procedure that's internal
to my deep-in-the-guts-of-the-system procedure as the actual argument.
I can't do this now, because the type might outlive the procedure, and
therefore a pointer to the procedure might outlive its up-level.

-- 
What fraction of Americans believe   |  Van Snyder
Wrestling is real and NASA is fake?  |  vsnyder@math.jpl.nasa.gov




^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~1998-07-07  0:00 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-07-03  0:00 Idea for Ada 200x: Arguments that are procedures Van Snyder
1998-07-02  0:00 ` Robert Dewar
1998-07-02  0:00 ` Brian Rogoff
1998-07-03  0:00 ` Charles Hixson
1998-07-04  0:00   ` Larry Kilgallen
1998-07-06  0:00   ` Dr Richard A. O'Keefe
1998-07-03  0:00 ` Steve Whalen
1998-07-03  0:00   ` Brian Rogoff
1998-07-03  0:00     ` Steve Whalen
1998-07-04  0:00       ` Larry Kilgallen
1998-07-07  0:00       ` Robert I. Eachus
1998-07-07  0:00         ` Brian Rogoff
1998-07-03  0:00   ` Robert Dewar
1998-07-03  0:00     ` Brian Rogoff

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox