comp.lang.ada
 help / color / mirror / Atom feed
From: hbaker@netcom.com (Henry Baker)
Subject: Re: Depending on passing mechanism
Date: 1997/10/15
Date: 1997-10-15T00:00:00+00:00	[thread overview]
Message-ID: <hbaker-1510970700110001@10.0.2.1> (raw)
In-Reply-To: 622b4t$nhe$1@gonzo.sun3.iaf.nl


In article <622b4t$nhe$1@gonzo.sun3.iaf.nl>, Geert Bosch
<geert@gonzo.sun3.iaf.nl> wrote:
> In general this cannot be detected at compile time. Solving this
> aliasing problem in the language (for example using reference
> counting) will result in significant extra complexity and distributed
> overhead. This added complexity and overhead would be two strong
> reasons not to use the "improved" language for embedded systems
> like those in the Boeing 777 you mentioned.
> 
> Do you have a proposal to remove the non-determinism without affecting
> performance and flexibility too much? I think many readers in this
> group might be interested in such ideas, at least I am.
> 
> Regards,
>    Geert

Yes.

There are 3 solutions, any of which is better than the current Ada 'non
deterministic' solution.

1.  _Always_ pass by reference.  This can be forced in C/C++ by certain
coding styles.  Any aliasing is assumed to be programmer-intended, and
has a relatively simple programming model.  (You may have to liberally
sprinkle 'volatile'-type thingy's around as well.)  There is a certain
cost, but on modern microprocessors the cost is not exorbitant, and certainly
less than the cost of a 777.

2.  _Always_ pass by value.  This is really possible only in a 100%
functional language like Haskell.

3.  Add a new concept to your language: 'linear'/'unique' types.  These
objects are guaranteed to be singly referenced because this is enforced
by the type system.  Poof!  No aliasing!  This concept was pioneered by
NIL/Hermes, and has recently been incorporated into some logical (prolog-like)
languages and some functional languages ('Clean' from KU Leaven).  There is a
large and growing body of mathematics called 'linear logic' that puts linear
types on a firm theoretical foundation.

The NIL/Hermes people tried to get people in the Ada community to pay
attention, but they were completely ignored, and Ada95 suffered for it.




  parent reply	other threads:[~1997-10-15  0:00 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-10-13  0:00 Depending on passing mechanism Andre Spiegel
1997-10-13  0:00 ` Matthew Heaney
1997-10-14  0:00 ` Robert Dewar
1997-10-14  0:00 ` Robert Dewar
1997-10-14  0:00   ` Henry Baker
1997-10-15  0:00     ` Geert Bosch
1997-10-15  0:00       ` Robert Dewar
1997-10-15  0:00         ` Robert Dewar
1997-10-17  0:00           ` Andre Spiegel
1997-10-17  0:00             ` Henry Baker
1997-10-17  0:00               ` Jon S Anthony
1997-10-17  0:00               ` Robert I. Eachus
1997-10-21  0:00               ` Robert A Duff
1997-10-21  0:00                 ` Peter Hermann
1997-10-22  0:00                   ` Robert A Duff
1997-10-22  0:00                     ` Brian Rogoff
1997-10-22  0:00                 ` Henry Baker
1997-10-21  0:00                   ` Robert Dewar
1997-10-22  0:00                   ` Brian Rogoff
1997-10-22  0:00                   ` Jon S Anthony
1997-10-15  0:00         ` Brian Rogoff
1997-10-19  0:00           ` Robert Dewar
1997-10-22  0:00             ` Henry Baker
1997-10-15  0:00       ` Henry Baker [this message]
1997-10-15  0:00         ` Jon S Anthony
1997-10-15  0:00         ` Robert Dewar
1997-10-16  0:00         ` Brian Rogoff
1997-10-17  0:00           ` Henry Baker
1997-10-18  0:00             ` Fergus Henderson
1997-10-18  0:00             ` Brian Rogoff
1997-10-18  0:00               ` Matthew Heaney
1997-10-19  0:00                 ` Brian Rogoff
1997-10-21  0:00                   ` Robert A Duff
1997-10-22  0:00                     ` Robert Dewar
1997-10-22  0:00                       ` Brian Rogoff
     [not found]                         ` <dewar.877601826@merv>
1997-10-23  0:00                           ` Brian Rogoff
1997-10-23  0:00                       ` Henry Baker
1997-10-23  0:00                     ` Brian Rogoff
1997-10-19  0:00               ` Fergus Henderson
1997-10-19  0:00                 ` Brian Rogoff
1997-10-20  0:00                   ` Fergus Henderson
1997-10-20  0:00                 ` Henry Baker
1997-10-20  0:00                   ` Tucker Taft
1997-10-21  0:00                     ` Geert Bosch
1997-10-15  0:00     ` JP Thornley
1997-10-21  0:00     ` Robert A Duff
1997-10-22  0:00       ` Henry Baker
1997-10-21  0:00         ` Matthew Heaney
1997-10-22  0:00           ` Simon Wright
1997-10-23  0:00           ` Henry Baker
1997-10-23  0:00             ` Pat Rogers
1997-10-24  0:00             ` Robert Dewar
1997-10-23  0:00         ` Robert A Duff
1997-10-21  0:00   ` Keith Thompson
replies disabled

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