comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Real syntax problems in Ada
Date: Tue, 28 Aug 2012 16:49:12 -0500
Date: 2012-08-28T16:49:12-05:00	[thread overview]
Message-ID: <k1ject$ip6$1@munin.nbi.dk> (raw)
In-Reply-To: 289703e7-1fba-41ce-b781-9e58ff2ec7df@googlegroups.com

"Adam Beneschan" <adam@irvine.com> wrote in message 
news:289703e7-1fba-41ce-b781-9e58ff2ec7df@googlegroups.com...
On Tuesday, August 28, 2012 1:13:02 AM UTC-7, Dmitry A. Kazakov wrote:
> What are real problems with Ada syntax as opposed to the imaginary ones
...
>> 2. "end record" instead of "end <record type name>";
>
>Yep, this is one I wish were different.  After working with Ada for about 
>24 years
> I still sometimes type in "end <type-name>" before I catch myself.

I feel that way too, but there is a semantic reason why this isn't possible. 
Specifically, the part after the "is" of a type declaration is a "type 
definition". These are anonymous and can appear in various other contexts 
(anonymous array and access types, for instance). The name of a type comes 
from the type declaration, which is a separate semantic entity (and has 
subtly different rules). I know that Janus/Ada processes "type definitions" 
separately from the declarations, and thus including a name in the anonymous 
part would be difficult to manage.

I once seriously looked at proposing allowing a name in a record type 
declaration, and I couldn't figure out a reasonable way to do so given the 
existing Ada semantics. Figuring out some way to hack the wording so that 
the name associated with the declaration somehow can be matched in the 
definition would seem to require changes all over the standard all out of 
proportion to the size of the problem. So I don't think this is ever going 
to happen.

...
>> 4. "overriding procedure Foo" instead of "procedure Foo is overriding";
>
>It's possible for "overriding" to occur on a procedure body (and necessary 
>in some
> less-common cases).  I'd worry that if Foo has a long parameter list, an 
> overriding keyword
>could get buried in a case like that, making it harder to spot for a 
>reader.  That's a minor point,
>though.

I suspect that if we had added this in Ada 2012 rather than Ada 2005, it 
would have been an aspect -- using separate syntax is overkill for this 
problem. I.e.

    procedure Foo
        with Overriding;

...
>With respect to *syntax* problems (as opposed to new features), my own wish 
>list would
>include allowing a generic formal part to be repeated on a generic package 
>or procedure body.
>(Otherwise, if the specification and body are in different source files, 
>you can't see the definitions
>of the formal parameters when they're used in the body.  I usually just 
>copy in the generic formal
>part as comments.)

As a user, I agree. As an implementer, I would look forward to implementing 
the 5 pages of conformance rules needed for that... :-(

                                              Randy.





  parent reply	other threads:[~2012-08-28 21:49 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-28  8:13 Real syntax problems in Ada Dmitry A. Kazakov
2012-08-28 10:20 ` Georg Bauhaus
2012-08-28 10:47 ` Niklas Holsti
2012-08-28 11:33   ` J-P. Rosen
2012-08-31 13:35     ` Robert A Duff
2012-08-28 13:27 ` Vasiliy Molostov
2012-08-28 15:23   ` Dmitry A. Kazakov
2012-08-28 20:18     ` Vasiliy Molostov
2012-08-29  7:25       ` Dmitry A. Kazakov
2012-08-29 10:47         ` Vasiliy Molostov
2012-08-29 11:58           ` Dmitry A. Kazakov
2012-08-30 17:38             ` Vasiliy Molostov
2012-08-28 15:14 ` Adam Beneschan
2012-08-28 16:18   ` J-P. Rosen
2012-08-28 16:39   ` Dmitry A. Kazakov
2012-08-28 21:38     ` Randy Brukardt
2012-08-29  6:58       ` Dmitry A. Kazakov
2012-08-29 10:43         ` stefan-lucks
2012-08-29 10:58           ` stefan-lucks
2012-08-29 13:14           ` Niklas Holsti
2012-08-29 17:52             ` stefan-lucks
     [not found]             ` <fbps38pgcuf8fgioptt39s6u7dme1aqs7r@invalid.netcom.com>
2012-09-02 10:16               ` svaa
2012-08-29 13:33           ` Georg Bauhaus
2012-08-29 17:20             ` Jeffrey Carter
2012-08-29 17:51             ` stefan-lucks
2012-08-30  9:12               ` Georg Bauhaus
2012-08-28 21:49   ` Randy Brukardt [this message]
2012-08-28 23:09     ` Adam Beneschan
2012-08-29  7:34     ` Egil Høvik
2012-08-28 19:41 ` Florian Weimer
2012-08-28 20:53   ` Shark8
2012-08-28 21:07     ` Adam Beneschan
2012-08-28 21:25       ` Shark8
2012-08-28 22:59         ` Adam Beneschan
2012-08-29  7:06       ` Dmitry A. Kazakov
2012-08-30 21:08         ` Randy Brukardt
2012-08-30 22:06 ` sbelmont700
2012-08-30 22:34   ` Adam Beneschan
2012-08-30 22:54     ` William Findlay
2012-08-31  7:39     ` Dmitry A. Kazakov
replies disabled

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