comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: subprogram must not be deeper than access type
Date: Tue, 27 Sep 2011 09:52:09 +0200
Date: 2011-09-27T09:52:09+02:00	[thread overview]
Message-ID: <10bj41auuxi17$.42qw3wdubqn3.dlg@40tude.net> (raw)
In-Reply-To: j5ro7t$dji$1@dont-email.me

On Tue, 27 Sep 2011 07:50:54 +0200, J-P. Rosen wrote:

> Le 26/09/2011 21:30, Dmitry A. Kazakov a �crit :
>> I'd like to have anonymous types in record components. It is annoying not
>> to be able to write:
>> 
>>    type Foo is record
>>        Nested : record
>>           end record;
>>        List : array (...) of ...;
>>    end record;
>> 
> "Annoying to write" was never an issue in Ada, where we favor ease of
> reading over ease of writing.

Forward type declarations of types used only for components (and BTW, for
generic instances) are very annoying especially for reading.

> If your Nested component represents a
> logical entity of your problem domain, it deserves a name (i.e. a type).
> And what could you do with this component? Without a type name, no
> subprogram could operate on it.

It is meant only to have large record types structured. E.g.

   type Buffer_Implementation (Size : Positive) is record
      Position : record
            In_Index : ...;
            Out_Index : ...;
              ...
         end record;
      Consumer_Notification : record
            ...  
         end record;
      Data : array (1..Size) of Octet;
      ...

No special meaning other than grouping other components.

Compare it with declare-begin-end blocks they too have no names and have no
identifiable counterpart in the domain, just an implementation detail.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2011-09-27  7:51 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-25  9:02 subprogram must not be deeper than access type Natasha Kerensikova
2011-09-25 14:04 ` Oliver Kleinke
2011-09-26  9:35   ` Natasha Kerensikova
2011-10-03 23:30   ` Yannick Duchêne (Hibou57)
2011-10-03 23:39     ` Adam Beneschan
2011-10-04  0:52       ` Yannick Duchêne (Hibou57)
2011-10-04  1:48         ` Yannick Duchêne (Hibou57)
2011-09-25 14:23 ` Robert A Duff
2011-09-25 15:03 ` georg bauhaus
2011-09-26  9:45   ` Natasha Kerensikova
2011-09-26 13:43     ` Robert A Duff
2011-09-26 14:20       ` Dmitry A. Kazakov
2011-09-26 16:15         ` Robert A Duff
2011-09-26 19:30           ` Dmitry A. Kazakov
2011-09-27  0:41             ` Robert A Duff
2011-09-27  8:58               ` Dmitry A. Kazakov
2011-10-04  4:19               ` Yannick Duchêne (Hibou57)
2011-09-27  5:50             ` J-P. Rosen
2011-09-27  7:52               ` Dmitry A. Kazakov [this message]
2011-10-04  4:26                 ` Yannick Duchêne (Hibou57)
2011-10-04  7:58                   ` Dmitry A. Kazakov
2011-10-04 15:10                     ` Georg Bauhaus
2011-10-04 15:34                       ` Dmitry A. Kazakov
2011-10-04 15:49                         ` Yannick Duchêne (Hibou57)
2011-10-04 16:04                           ` Dmitry A. Kazakov
2011-10-04 15:44                       ` Yannick Duchêne (Hibou57)
2011-10-04 16:05                         ` Georg Bauhaus
2011-10-04 16:47                           ` Yannick Duchêne (Hibou57)
2011-10-04 15:41                     ` Yannick Duchêne (Hibou57)
2011-09-26 18:59       ` Jeffrey Carter
2011-09-27  0:35         ` Robert A Duff
2011-10-04  4:30         ` Yannick Duchêne (Hibou57)
2011-10-04 18:40           ` Jeffrey Carter
2011-09-26 14:29     ` Georg Bauhaus
2011-09-26 15:31       ` Georg Bauhaus
2011-10-04  4:35       ` Yannick Duchêne (Hibou57)
2011-10-04  4:13     ` Yannick Duchêne (Hibou57)
2011-09-25 17:16 ` Jeffrey Carter
2011-09-25 21:53   ` Robert A Duff
2011-09-26  9:25     ` Georg Bauhaus
2011-09-26 23:00     ` Randy Brukardt
2011-09-27  0:34       ` Robert A Duff
replies disabled

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