From: Lengyel Sandor <hunnia@pacbell.net>
Subject: Re: Please help a newbie with Booch/Ada.
Date: 1998/08/21
Date: 1998-08-21T00:00:00+00:00 [thread overview]
Message-ID: <35DE133E.2B824401@pacbell.net> (raw)
In-Reply-To: upvducc1i.fsf@gsfc.nasa.gov
Stephen Leake wrote:
>
> Lengyel Sandor <hunnia@pacbell.net> writes:
>
> > I am fooling around with the Booch components, since I think
> > "Collections" are very usefull.
>
> good idea.
>
> > PACKAGE String_References IS
> > TYPE String_ptr IS ACCESS ALL String;
> > TYPE Const_String_Ptr IS ACCESS CONSTANT String;
> > END String_References;
> >
> >
> > Then I created a root_string_container.ads as:
> >
> > with Bc.Containers;
> > with String_References;
> > package Root_String_Container is new Bc.Containers
> > (String,String_References.String_ptr);
> >
> >
> > (Coping the format of root_container.ads. :-) )
> >
> > When I run a semanric check on this later code, I get the following
> > message.
> >
> > root_string_container.ads:4:08: actual for "Item" must be a definite
> > subtype.
>
> See RM 3.3 (23). Basically, an indefinite type is any unconstrained
> type (in this case, String is an unconstrained array). A definite type
> is a constrained type.
>
> The problem is that the Ada 95 Booch components are modeled after the
> C++ Booch components. Since there is no such thing as an "indefinite
> type" in C++, the Ada 95 Booch components restrict you to definite
> types. This is one of the advantages of Ada 95 over C++; you can give
> more information about the type. On the other hand, a careless library
> author can shoot you down.
>
> As a work around, you can use Ada.Strings.Unbounded.Unbounded_String
> instead of String.
>
> Better would be to fix the Ada 95 Booch components to allow indefinite
> types. Find the declaration of Bc.Containers, and add "(<>)" as a
> discriminant to the object type. Be aware this might break lots of
> stuff; I haven't tried it.
>
> -- Stephe
At work I tried the Bounded_String approach, (before I read this
letter), and I got it working.
I am not impressed with the booch components so far. I had to create
quite a few new packages.
Now that it is done, it is easy to use.
I don't know much about Ada, but feel that redoing the object types as
you suggested, should have been the way to go. There should be a
collection library more general and easier to use. Is there one?
Also the documentation for the Booch components is almost non existent.
Maybe it is enough for an expert, but I spent 1 day to get it working
for Strings.
Sandor
--
Lengyel Sándor
Hass, alkoss, gyarapits,
S a haza fényre derül. (Kölcsey)
next prev parent reply other threads:[~1998-08-21 0:00 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-08-20 0:00 Please help a newbie with Booch/Ada Lengyel Sandor
1998-08-21 0:00 ` Stephen Leake
1998-08-21 0:00 ` Lengyel Sandor [this message]
1998-08-27 0:00 ` Simon Wright
1998-08-30 0:00 ` Matthew Heaney
1998-09-01 0:00 ` Brian Rogoff
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox