comp.lang.ada
 help / color / mirror / Atom feed
From: kst@thomsoft.com (Keith Thompson)
Subject: Re: Syntax question
Date: Mon, 13 Mar 1995 04:43:56 GMT
Date: 1995-03-13T04:43:56+00:00	[thread overview]
Message-ID: <D5D3t9.7nL@thomsoft.com> (raw)
In-Reply-To: 3jrt1m$9rk@erinews.ericsson.se

In <3jrt1m$9rk@erinews.ericsson.se> etlghh@garbo.ericsson.se (Geoffrey Hollingworth) writes:
> I am currently researching into real time languages and hope
> you ada experts can explain something to me.  I apologise for
> my lack of knowledge in ada.
> When binding formal parameters with actual parameters the '=>'
> operator is used, irrespective of whether the formal parameter
> is declared as IN, INOUT or OUT.  Is there a reason for this ?
> If I proposed an alternative syntax where "=>" indicated the FP
> was an IN parameter, "<=" to indicate an OUT parameter and "<=>"
> to indicate an INOUT.
> Then the caller of the procedure/function would have explicitly
> had to understand to direction of the parameters and at the same
> time increased the readability of his/her code.

Some versions of preliminary Ada (1979, possibly 1980) used ":=", "=:",
and ":=:" for named associations for in, out, and in out parameters,
respectively.  This was changed to "=>" for all three modes.  As others
have mentioned, this applies only to named notation; in positional
notation you just write the actual expressions or names separated
by commas.

As part of the Ada 9X revision process, I proposed a revision to allow
the parameter mode to be (optionally) specified for actual parameters by
using "in", "out", or "in out".  The compiler would check that the mode
is consistent with the declaration.  For example, given the declaration

    procedure Foo(X: in Integer; Y: out Integer);

, and given that A and B are Integer objects, any of the following calls
would be legal, along with numerous other combinations:

    Foo(A, B);                  -- existing syntax
    Foo(X => A, Y => B);        -- existing syntax
    Foo(in A, out B);           -- new syntax
    Foo(in X => A, out Y => B); -- new syntax

and the following would be illegal:

    Foo(in X => A, in out Y => B); -- inconsistent mode specified for Y => B

This change would have been entirely upward compatible, straightforward
to implement, and (IMHO) could have dramatically improved readability
in many cases, but it didn't make it into the language.

Maybe for Ada 200X?

-- 
Keith Thompson (The_Other_Keith)  kst@thomsoft.com (kst@alsys.com still works)
TeleSoft^H^H^H^H^H^H^H^H Alsys^H^H^H^H^H Thomson Software Products
10251 Vista Sorrento Parkway, Suite 300, San Diego, CA, USA, 92121-2718
That's Keith Thompson *with* a 'p', Thomson Software Products *without* a 'p'.



  parent reply	other threads:[~1995-03-13  4:43 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1995-03-11 10:12 Syntax question Geoffrey Hollingworth
1995-03-11 15:16 ` Robert A Duff
1995-03-11 20:45 ` Michael Feldman
1995-03-15 23:29   ` David Kusuda
1995-03-16  2:25     ` David Weller
1995-03-16 14:44       ` Spencer Allain
1995-03-19  1:04       ` Robert Dewar
1995-03-16  9:19     ` Fred J. McCall
1995-03-17  5:44     ` Niklas Holsti
1995-03-19 20:53       ` Robert Dewar
1995-03-11 21:44 ` Road Pilot
1995-03-23 13:07   ` Bob Collins
1995-03-24  1:11     ` Kevin F. Quinn
1995-03-27 14:19       ` Norman H. Cohen
1995-03-13  4:43 ` Keith Thompson [this message]
1995-03-16 20:37   ` Norman H. Cohen
1995-03-21  0:51     ` Robert Dewar
1995-03-16 19:20 ` Adam Beneschan
  -- strict thread matches above, loose matches on Subject: below --
2001-07-05 17:58 Syntax Question Robby Simpson
2001-07-05 18:32 ` Marin David Condic
2001-07-05 18:38 ` Robby Simpson
2001-07-05 19:09 ` Ted Dennison
2001-07-05 20:14   ` Robby Simpson
2001-07-05 21:44 ` Robert Dewar
2001-07-09 12:39   ` Robby Simpson
     [not found] <Cx6pG3.IEp@ucc.su.oz.au>
1994-10-05 14:20 ` Syntax question Tucker Taft
     [not found]   ` <36ui0u$4dg@gnat.cs.nyu.edu>
1994-10-06  0:04     ` David Weller
1994-10-05  5:19 Adrian Cho
1994-10-05 11:52 ` Robert Dewar
1994-10-05 17:19   ` Norman H. Cohen
replies disabled

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