comp.lang.ada
 help / color / mirror / Atom feed
From: Dmitry A. Kazakov <mailbox@dmitry-kazakov.de>
Subject: Re: Announce: Grace project site operational
Date: Wed, 15 May 2002 15:41:28 +0200
Date: 2002-05-15T15:41:28+02:00	[thread overview]
Message-ID: <v0o4eugfn5mnolkmiq8u9d2ide6qta48el@4ax.com> (raw)
In-Reply-To: mailman.1021462505.30565.comp.lang.ada@ada.eu.org

On Wed, 15 May 2002 13:32:48 +0200 (MET DST), "Grein, Christoph"
<christoph.grein@eurocopter.com> wrote:

>From: "Dmitry A.Kazakov" <mailbox@dmitry-kazakov.de>
>> Consider:
>> 
>>    type Graph_Node is private;
>>    No_Node : constant Graph_Node; -- Deferred, but visible
>>    function Get_Next_Child
>>       (Parent : Graph_Node; Child : Graph_Node := No_Node)
>>          return Graph_Node;
>> 
>> Here I exposed No_Node, which then can be abused like:
>> 
>>    Get_Next_Child (No_Node);
>> 
>> A solution could be some sort of incomplete declaration for
>> subprograms:
>> 
>>    type Graph_Node is private;
>>    function Get_Next_Child
>>       (Parent : Graph_Node; Child : Graph_Node := <>)
>>          return Graph_Node;
>
>Your caller has to have some variable Current_Parent, which might have the value 
>No_Node, e.g. when it is undefined (private types should be defaulted to 
>something like this so that they always have a value even when never assigned a 
>value).

Fortunately, with Ada 95 we have a way to ensure that all variables
get initialized:

type Graph_Node (<>) is private; -- Prevents uninitialized variables

>So you must make sure in any case that the actual for Parent is different from 
>No_Node, so the abusive
>
>  Get_Next_Child (No_Node);
>
>is caught in any case.

That's for sure, because Graph_Node will probably be a record
containing an access type, dereferenced and thus checked at run-time.
But this is no matter, because no run-time checks may supersede
compile-time ones.

Another story is that with a more advanced ADT there might be a way to
easily create a supertype Graph_Node_With_No_Node and then leave the
work to the compiler. But this is a long way to go.

>There are cases where
>
>         .---------------------------------------.
>         | Information Hiding Considered Harmful |
>         `---------------------------------------'

Egh, where am I? Is this comp.lang.ada? (:-))

---
Regards,
Dmitry Kazakov
www.dmitry-kazakov.de



  reply	other threads:[~2002-05-15 13:41 UTC|newest]

Thread overview: 153+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-05-15 11:32 Announce: Grace project site operational Grein, Christoph
2002-05-15 13:41 ` Dmitry A. Kazakov [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-05-15  9:58 Grein, Christoph
2002-05-15 16:12 ` Ted Dennison
2002-05-08  2:38 Ted Dennison
2002-05-08  2:48 ` Larry Kilgallen
2002-05-08 12:46   ` Ted Dennison
2002-05-08 13:33     ` Marin David Condic
2002-05-09 19:54       ` Randy Brukardt
2002-05-09 20:22         ` Marin David Condic
2002-05-10 14:59           ` Ted Dennison
2002-05-10 18:54           ` Randy Brukardt
2002-05-10 14:17       ` Larry Hazel
2002-05-10 14:46         ` David C. Hoos
2002-05-10 15:38         ` Marin David Condic
2002-05-11 14:17           ` Preben Randhol
2002-05-11 16:58             ` martin.m.dowie
2002-05-11 18:55               ` William C. Brennan
2002-05-11 20:10               ` Preben Randhol
2002-05-12  8:53                 ` martin.m.dowie
2002-05-13 13:18               ` Marin David Condic
2002-05-13 13:07             ` Marin David Condic
2002-05-14 15:18               ` Ted Dennison
2002-05-14 15:45                 ` Marin David Condic
2002-05-15 19:56                   ` Hyman Rosen
2002-05-16 13:44                   ` Stephen Leake
2002-05-14 17:02                 ` Martin Dowie
2002-05-15 14:57                   ` Ted Dennison
2002-05-15 15:31                     ` Marin David Condic
2002-05-16 21:57                       ` tmoran
2002-05-17  1:55                       ` tmoran
2002-05-17 13:12                         ` Marin David Condic
2002-05-18  1:44                           ` tmoran
2002-05-15 15:54                     ` Martin Dowie
2002-05-15 17:33                       ` Larry Kilgallen
2002-05-15 17:04                         ` David C. Hoos
2002-05-15 22:59                     ` tmoran
2002-05-16 13:36                       ` Marin David Condic
2002-05-16 13:43                       ` Ted Dennison
2002-05-16 14:51                         ` Marin David Condic
2002-05-17 15:34                         ` Stephen Leake
2002-05-20 13:47                           ` Marin David Condic
2002-05-21 14:23                             ` Stephen Leake
2002-05-21 17:24                               ` Ted Dennison
2002-05-21 17:52                                 ` Marin David Condic
2002-05-22 16:20                                   ` Stephen Leake
2002-05-28  8:22                                     ` Martin Dowie
2002-05-22 16:16                                 ` Stephen Leake
2002-05-16 11:06                     ` John English
2002-05-16 13:52                       ` Stephen Leake
2002-05-16 16:40                       ` Hyman Rosen
2002-05-14 17:50                 ` tmoran
2002-05-14 18:07                   ` Preben Randhol
2002-05-14 18:12                     ` Preben Randhol
2002-05-14 18:52                       ` Hyman Rosen
2002-05-15  8:17                         ` Dmitry A. Kazakov
2002-05-15 18:30                           ` Hyman Rosen
2002-05-16  9:16                             ` Dmitry A. Kazakov
2002-05-16 19:42                               ` Hyman Rosen
2002-05-17  8:35                                 ` Dmitry A. Kazakov
2002-05-20 17:08                                   ` Hyman Rosen
2002-05-21  8:34                                     ` Dmitry A. Kazakov
2002-05-21 15:57                                       ` Hyman Rosen
2002-05-22  7:48                                         ` Dmitry A. Kazakov
2002-05-22 11:40                                   ` Georg Bauhaus
2002-05-22 15:05                                     ` Dmitry A. Kazakov
2002-05-22 16:14                                       ` Georg Bauhaus
2002-05-22 16:31                                       ` Hyman Rosen
2002-05-23 11:40                                         ` Dmitry A. Kazakov
2002-05-15  8:44                         ` Martin Dowie
2002-05-15 18:15                           ` Stephen Leake
2002-05-15 18:39                             ` Darren New
2002-05-15 19:34                               ` Hyman Rosen
2002-05-15 23:52                                 ` Darren New
2002-05-16  7:39                                   ` Hyman Rosen
2002-05-16 15:35                                     ` Darren New
2002-05-16 17:55                                       ` Brian Rogoff
2002-05-16 13:35                                   ` Stephen Leake
2002-05-16 15:50                                     ` Darren New
2002-05-16 16:28                                       ` Hyman Rosen
2002-05-17 15:14                                       ` Stephen Leake
2002-05-17 16:08                                         ` Darren New
2002-05-17 16:41                                           ` Fraser Wilson
2002-05-17 16:43                                           ` Stephen Leake
2002-05-17 16:24                                         ` Marin David Condic
2002-05-17 15:03                                     ` Fraser Wilson
2002-05-17 15:27                                       ` Stephen Leake
2002-05-17 16:20                                         ` Fraser Wilson
2002-05-17 16:46                                           ` Stephen Leake
2002-05-18  6:14                                         ` Simon Wright
2002-05-17 15:44                                       ` Mark Biggar
2002-05-17 16:09                                         ` Fraser Wilson
2002-05-17 16:48                                           ` Stephen Leake
2002-05-17 21:11                                           ` Mark Biggar
2002-05-21  8:45                                       ` Dmitry A. Kazakov
2002-05-15 19:24                             ` Hyman Rosen
2002-05-15 23:33                         ` tmoran
2002-05-16 13:48                           ` Stephen Leake
2002-05-16 14:39                             ` Martin Dowie
2002-05-14 19:10                       ` tmoran
2002-05-14 19:58                         ` Preben Randhol
2002-05-11 19:42           ` Jeffrey Carter
2002-05-11 20:16             ` Preben Randhol
2002-05-11 19:49           ` Jeffrey Carter
2002-05-13 15:44             ` Ted Dennison
2002-05-13 16:16               ` Marin David Condic
2002-05-13 17:10               ` Stephen Leake
2002-05-13 19:07                 ` Preben Randhol
2002-05-13 20:21                 ` Marin David Condic
2002-05-14 15:00                 ` Ted Dennison
2002-05-14 16:00                   ` Stephen Leake
2002-05-14 16:30                     ` Preben Randhol
2002-05-13 19:16               ` Jeffrey Carter
2002-05-13 19:19               ` Simon Wright
2002-05-11  1:23         ` Richard Riehle
2002-05-11 12:27           ` Marc A. Criley
2002-05-08 16:12     ` Hyman Rosen
2002-05-08 16:31       ` Larry Kilgallen
2002-05-08 17:16         ` Marin David Condic
2002-05-09  9:50           ` Larry Kilgallen
2002-05-09 13:32             ` Marin David Condic
2002-05-09 13:54             ` Ted Dennison
2002-05-09 14:23               ` Mário Amado Alves
2002-05-09 20:02                 ` Randy Brukardt
2002-05-09 20:44                   ` Marin David Condic
2002-05-10 13:06                     ` Hyman Rosen
2002-05-10 16:23                       ` Preben Randhol
2002-05-10 18:57                         ` Hyman Rosen
2002-05-10 18:58                     ` Randy Brukardt
2002-05-10  8:35                   ` Dmitry A. Kazakov
2002-05-10 19:00                     ` Randy Brukardt
2002-05-13  8:10                       ` Dmitry A. Kazakov
2002-05-10 19:35                     ` Ted Dennison
2002-05-13  8:01                       ` Dmitry A. Kazakov
2002-05-10 10:25                   ` Mário Amado Alves
2002-05-09 20:53               ` Simon Wright
2002-05-10  8:29               ` Dmitry A. Kazakov
2002-05-14 15:03                 ` John English
2002-05-15  8:34                   ` Dmitry A. Kazakov
2002-05-15 10:38                     ` John English
2002-05-15 11:18                       ` Dmitry A. Kazakov
2002-05-15 18:10                         ` Stephen Leake
2002-05-09 14:03           ` Wes Groleau
2002-05-09 15:38             ` Marin David Condic
2002-05-11 18:10         ` William C. Brennan
2002-05-08 22:00       ` Ted Dennison
2002-05-09  5:39         ` Hyman Rosen
2002-05-09 14:21         ` Wes Groleau
2002-05-25 22:03           ` Robert I. Eachus
2002-05-08 14:32 ` Stephen Leake
2002-05-10 14:46   ` Ted Dennison
2002-05-10  7:47 ` fraser
2002-05-10 14:55   ` Ted Dennison
replies disabled

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