comp.lang.ada
 help / color / mirror / Atom feed
From: mark_lundquist@my-deja.com
Subject: Subprogram types vs. "limited access" (was Re: Do we need "Mission-Critical" software? Was: What to Do?
Date: Fri, 12 Jan 2001 20:29:55 GMT
Date: 2001-01-12T20:29:55+00:00	[thread overview]
Message-ID: <93npfn$13d$1@nnrp1.deja.com> (raw)
In-Reply-To: 93mqhh$4gl$1@nnrp1.deja.com

In article <93mqhh$4gl$1@nnrp1.deja.com>,
  dmitry6243@my-deja.com wrote:
> In article <93l6ut$pvf$1@nnrp1.deja.com>,
>   mark_lundquist@my-deja.com wrote:

> > Java wanted to get rid of pointer-related bugs.  Unfortunately, you
> > kind of have to have pointers!
>
> Yes, but rare.

I meant for linked data structures... you need by-reference semantics,
or in a by-value language you need pointers.  It's hard to believe
Gosling et al would not see past the C conception of
pointer=address=integer.  For whatever reasons they went with a by-
reference design.  Who can say...

> BTW (if Robert does not hear us (:-)) I think that Ada
> shuld have true subroutine types (not only pointers).  The values are
> passed by reference (always IN),
> so in may cases the clusy trick
> with generics will be not required.

The downward closure thing again, huh?

You have to define this idea of a procedure type to be limited (like a
task) in order to really solve the problem, right?  Note that that
makes anything but an IN parameter illegal, so you also solve that
problem without having to create essentially a new kind of parameter
(as access parameters were).

The first problem with subprogram parameters is a syntactic one -- what
syntax do you use to establish its profile?  Subprogram types as you
suggest are one way to solve that problem, and they seem consistent
with the "Ada way" (every parameter is of a named subtype).

e.g.,

    type Action is procedure (This : in Something);
    type Predicate is function (This : in Something) return Boolean;

Is that the idea?

The conformance rules for parameters of these types would then have to
be more like the matching rules for generic formal subprograms, or
subprogram renamings.  That is, you don't declare a function to be of
type Predicate (per the example), you declare a function in the normal
way and then it matches a subprogram of type Predicate.  Right?

That _is_ a bit of a stretch to the philosophy of the type system.  The
essential idea of a type is that it's a template for the creation of
objects.  Every type in Ada is an object type; this breaks that
regularity.  This would be a type that not only doesn't have objects as
its instances, it doesn't have instances at all!  It's just a vehicle
for carrying around a profile.  So from that perspective it's a little
bizarre.

Another idea that went around, I think during the Ada9x process, was
that of a "limited access" type.  This is a real object type, so it's
more consistent with the rest of the Ada type system.  Limitedness
solves the accessibility problem for downward closures.

Bob Duff wrote an AI on this.  The verdict was that the ramifications
were negligible for implementations that used static links, but would
be quite burdensome for implementations that use displays, so the idea
was rejected.

I wonder, are there any (current) Ada implementations out there that
use displays for nested context?  I'm not a compiler expert; what
factors constrain the choice of static link vs. display?  Are there
aspects of the target that favor one or the other?  I just don't know...

Other access types could be limited as well, not just access-to-
subprogram, and limited access is useful for other things besides
downward closure.  I'd like to see this feature added.

-- mark


Sent via Deja.com
http://www.deja.com/



  reply	other threads:[~2001-01-12 20:29 UTC|newest]

Thread overview: 184+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-12-31 16:09 What to Do? Petra Lynn Hofman
2000-12-31 16:58 ` Robert Dewar
2000-12-31 17:41   ` Ted Dennison
2001-01-01 15:24     ` Marin David Condic
2001-01-01 17:18       ` Robert Dewar
2001-01-02 15:05         ` Marin David Condic
2001-01-01 17:54       ` Ted Dennison
2001-01-02 15:14         ` Marin David Condic
2001-01-01 21:22       ` Lao Xiao Hai
2001-01-01 15:15   ` Marin David Condic
2000-12-31 18:06 ` E. Robert Tisdale
2000-12-31 21:07   ` tmoran
2001-01-01 16:10   ` Marin David Condic
2001-01-01 17:08     ` Ehud Lamm
2001-01-01 17:53       ` Do we need "Mission-Critical" software? Was: " Warren W. Gay VE3WWG
2001-01-01 18:29         ` Ted Dennison
2001-01-01 20:25           ` Robert Dewar
2001-01-02 19:03             ` Ted Dennison
2001-01-02 20:22               ` Robert Dewar
2001-01-02 22:23               ` Florian Weimer
2001-01-02 22:27               ` Florian Weimer
2001-01-01 20:26           ` Robert Dewar
2001-01-02 19:05             ` Ted Dennison
2001-01-02 20:24               ` Robert Dewar
2001-01-02 22:53                 ` Ted Dennison
2001-01-03 18:39           ` Georg Bauhaus
2001-01-03 19:22             ` Ted Dennison
2001-01-04  1:18               ` Cesar Scarpini Rabak
2001-01-01 19:28         ` Ehud Lamm
2001-01-02 14:56         ` Cesar Scarpini Rabak
2001-01-03  3:32           ` Warren W. Gay VE3WWG
2001-01-04  1:02             ` Cesar Scarpini Rabak
2001-01-04  3:53               ` Warren W. Gay VE3WWG
2001-01-04 12:04               ` Marin David Condic
2001-01-04 13:48                 ` Marc A. Criley
2001-01-06 20:23                   ` Lao Xiao Hai
2001-01-04 17:09                 ` Ted Dennison
2001-01-04 20:30                   ` Kevin Rigotti
2001-01-05  9:15                     ` n_brunot
2001-01-05  9:57                       ` Tarjei T. Jensen
2001-01-05 10:41                         ` n_brunot
2001-01-05 13:41                       ` Robert Dewar
2001-01-05 14:15                         ` n_brunot
2001-01-06 17:17                           ` Robert Dewar
2001-01-08  8:51                             ` n_brunot
2001-01-09  4:00                               ` Robert Dewar
2001-01-09 10:20                                 ` n_brunot
2001-01-09 12:34                                   ` Karel Thoenissen
2001-01-09 14:18                                   ` Robert Dewar
2001-01-09 15:29                                     ` Ole-Hjalmar Kristensen
2001-01-09 19:25                                     ` tmoran
2001-01-09 20:11                                     ` Florian Weimer
2001-01-09 14:20                                   ` Robert Dewar
2001-01-10  2:08                                 ` Keith Thompson
     [not found]                               ` <93e2d1$spv$1@ <3A5B054B.3CF03325@hello.nl>
2001-01-09 22:05                                 ` Simon Wright
2001-01-05 15:35                         ` Ole-Hjalmar Kristensen
2001-01-05 19:20                           ` Object naming conventions (was: Do we need "Mission-Critical" software?) Kevin Rigotti
2001-01-06 17:30                             ` Robert Dewar
2001-01-06 17:24                           ` Do we need "Mission-Critical" software? Was: What to Do? Robert Dewar
2001-01-08  9:14                             ` n_brunot
2001-01-09  0:28                               ` Cesar Scarpini Rabak
2001-01-09  8:35                                 ` Florian Weimer
2001-01-10  2:21                                 ` mark_lundquist
2001-01-09  2:34                               ` DuckE
2001-01-09  4:12                               ` Robert Dewar
2001-01-09  9:12                                 ` n_brunot
2001-01-09 12:24                                   ` David Gillon
2001-01-09 12:58                                   ` Marc A. Criley
2001-01-09 13:42                                   ` Marin David Condic
2001-01-09 14:00                                     ` Marin David Condic
2001-01-12  0:21                                       ` Larry J. Elmore
2001-01-12  1:24                                         ` Al Christians
2001-01-12  5:19                                         ` Ken Garlington
2001-01-12 18:05                                         ` Marin David Condic
2001-01-09 14:27                                   ` Robert Dewar
2001-01-09 15:15                                     ` n_brunot
2001-01-09 19:41                                       ` Robert Dewar
2001-01-09 20:44                                         ` Florian Weimer
2001-01-10 12:22                                           ` Marin David Condic
2001-01-10 13:49                                             ` Ken Garlington
2001-01-10 20:41                                           ` Robert Dewar
2001-01-09 23:04                                         ` tmoran
2001-01-27 16:58                                           ` Alejandro R. Mosteo
2001-01-10 16:37                                         ` Jerry Petrey
2001-01-10 19:12                                           ` Georg Bauhaus
2001-01-11  1:43                                           ` Frank Manning
2001-01-09 16:12                                     ` n_brunot
2001-01-09 19:48                                       ` Robert Dewar
2001-01-09 20:43                                         ` Britt Snodgrass
2001-01-10 20:43                                           ` Robert Dewar
2001-01-11 13:41                                             ` JOVIAL (was Do we need "Mission-Critical" software?) Ken Garlington
2001-01-12 15:32                                               ` carr_tom
2001-01-12 16:58                                                 ` Ira D. Baxter
2001-01-22 23:18                                                 ` jls
2001-01-13 14:20                                               ` Ken Garlington
2001-01-10 10:41                                         ` Do we need "Mission-Critical" software? Was: What to Do? David Kristola
2001-01-10 13:44                                           ` Ken Garlington
2001-01-10 21:39                                           ` Robert Dewar
2001-01-10 11:47                                         ` n_brunot
2001-01-10 12:25                                           ` Marin David Condic
2001-01-10 21:36                                           ` Robert Dewar
2001-01-11 10:00                                             ` n_brunot
2001-01-12  0:42                                               ` Larry J. Elmore
2001-01-12  1:47                                                 ` Robert Dewar
2001-01-12 16:05                                               ` Georg Bauhaus
2001-01-16 19:52                                               ` Do we need any Dewar-bashing? Wes Groleau
2001-01-09 19:03                                     ` Do we need "Mission-Critical" software? Was: What to Do? dmitry6243
2001-01-09 19:51                                       ` Robert Dewar
2001-01-09 20:46                                         ` Florian Weimer
2001-01-09 21:57                                         ` Warren W. Gay VE3WWG
2001-01-10  8:55                                         ` dmitry6243
2001-01-10 13:39                                           ` Pascal Obry
2001-01-11  8:58                                             ` dmitry6243
2001-01-11 21:01                                       ` mark_lundquist
2001-01-12 11:41                                         ` dmitry6243
2001-01-12 20:29                                           ` mark_lundquist [this message]
2001-01-12 21:58                                             ` Subprogram types vs. "limited access" (was " Randy Brukardt
2001-01-13  1:35                                               ` Robert Dewar
2001-01-13  1:20                                             ` Robert Dewar
2001-01-13 17:29                                             ` dmitry6243
2001-01-15 21:06                                               ` mark_lundquist
2001-01-16  0:32                                                 ` Robert Dewar
2001-01-16  2:57                                                   ` mark_lundquist
2001-01-16  5:47                                                     ` Robert Dewar
2001-01-16 17:47                                                       ` mark_lundquist
2001-01-16  9:12                                                 ` dmitry6243
2001-01-16 20:04                                         ` Wes Groleau
2001-02-02  6:45                                           ` Java packages (was " mark_lundquist
2001-01-15 20:04                                   ` Lao Xiao Hai
2001-01-15 20:28                                     ` Jerry Petrey
2001-01-15 21:05                                       ` tmoran
2001-01-16  0:36                                         ` Robert Dewar
2001-01-16 13:23                                           ` Marin David Condic
2001-01-15 21:44                                     ` Tucker Taft
2001-01-15 22:26                                       ` BSCrawford
2001-01-23  2:19                                       ` Lao Xiao Hai
     [not found]                                         ` <94kkme$amg$1@nnrp1.deja.com>
2001-01-26 20:43                                           ` Lao Xiao Hai
2001-01-27  9:36                                             ` David Kristola
2001-01-27 21:54                                             ` Ken Garlington
2001-01-27 23:09                                               ` Pat Rogers
2001-01-28 22:30                                                 ` Ken Garlington
2001-01-09 13:37                                 ` Marin David Condic
2001-01-12  1:11                                   ` Larry J. Elmore
2001-01-09 14:52                               ` Larry Kilgallen
2001-01-10 10:26                                 ` Florian Weimer
2001-01-10 21:43                                   ` Robert Dewar
2001-01-11 18:51                               ` mark_lundquist
2001-01-11 20:11                     ` mark_lundquist
2001-01-12 11:49                       ` Kevin Rigotti
2001-01-12 19:19                         ` mark_lundquist
2001-01-16 20:20                           ` Wes Groleau
2001-01-04 16:48               ` Ted Dennison
2001-01-05 13:15                 ` Cesar Scarpini Rabak
2001-01-06 20:19               ` Lao Xiao Hai
2001-01-01 21:37       ` Lao Xiao Hai
2001-01-01 21:44         ` Ehud Lamm
2001-01-03  4:00         ` William Starner
2001-01-01 23:44       ` David Kristola
2001-01-02  0:41         ` Brian Rogoff
2001-01-02  3:14           ` tmoran
2001-01-02 20:35             ` David Kristola
2001-01-02 22:56               ` Ted Dennison
2001-01-02  7:38           ` Ehud Lamm
2001-01-02 15:08           ` Ted Dennison
2001-01-02 20:59           ` What to Do? Silly Valley JF Harrison
2001-01-02 23:22             ` William Dale
2001-01-06 20:45               ` Lao Xiao Hai
2001-01-08 18:15                 ` William Dale
2001-01-08 19:00                   ` Florian Weimer
2001-01-08 19:01                   ` Florian Weimer
2000-12-31 21:47 ` What to Do? Robert Love
2001-01-01 21:31   ` Robert Love
2001-01-10 22:06 ` km0762
2001-01-10 22:06 ` km0762
2001-01-11  0:00   ` James Rogers
2001-01-11  1:03     ` Al Christians
2001-01-29 16:09       ` spider_templar2
2001-01-11 13:57     ` John English
2001-01-11 18:00       ` William Dale
2001-01-12  0:27         ` John English
2001-01-12  2:57           ` David Botton
2001-01-13  3:34             ` Petra Lynn Hofman
2001-01-13  6:05               ` Robert Dewar
2001-01-13 13:52               ` Ken Garlington
replies disabled

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