From: "Heimlich Manure" <spam@goes.here>
Subject: Re: Why was it done this way ?
Date: Wed, 26 Oct 2005 22:39:29 -0400
Date: 2005-10-26T22:39:29-04:00 [thread overview]
Message-ID: <S4X7f.13444$rE2.2101@fe10.lga> (raw)
In-Reply-To: 1130380243.198117.318920@g14g2000cwa.googlegroups.com
Well, recursion would explain some but not all of it. Something like
task type T1;
task body T1 is
MyGhost : T1;
is illegal. Meanwhile,
task type T1;
type T1_Ptr is access T1;
task body T1 is
MyGhostPtr : T1_Ptr;
is legal. But initializing MyGhostPtr can't be done, obviously, because T1
is unmentionable within its own scope.
Or even worse :
task type T1;
type T1_Ghost is new T1;
task body T1 is
MyGhostPtr : T1_Ghost;
Even this is legal !
So I humbly sense an inconsistency in "dynamicness" of tasks - it should
either allow full throttle recursion, or detect such loops at compile-time
and barf. But I beg to be forgiven, I just started looking at Ada a week
ago.
<jimmaureenrogers@worldnet.att.net> wrote in message
news:1130380243.198117.318920@g14g2000cwa.googlegroups.com...
>
> Heimlich Manure wrote:
> > Hello respectable group,
> >
> > This may be a silly question but I'm sure there was reasoning behind
> > allowing such :
> >
> > with Ada.Text_IO;
> > use Ada.Text_IO;
> >
> > procedure My_Example is
> > task type T1;
> > task type T2;
> >
> > task body T1 is
> > begin
> > Put_Line("Instantiating T2 from T1");
> > declare
> > T_2_2 : T2;
> > begin
> > null;
> > end;
> > end T1;
> >
> > task body T2 is
> > begin
> > Put_Line("Instantiating T1 from T2");
> > declare
> > T_1_1 : T1;
> > begin
> > null;
> > end;
> > end T2;
> >
> > T_1 : T2;
> > begin
> > null;
> > end My_Example;
> >
> > Question is, why is this legit ?
>
> What do you think should be wrong with this?
>
> Think of instances of tasks as active objects.
> Each task creates an instance of the other task.
>
> Granted, this program will run forever until the
> stack exhausted. In that manner, this program is
> a little like a recursive algorithm with no
> terminating condition.
>
> Jim Rogers
>
next prev parent reply other threads:[~2005-10-27 2:39 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-27 1:00 Why was it done this way ? Heimlich Manure
2005-10-27 2:30 ` jimmaureenrogers
2005-10-27 2:39 ` Heimlich Manure [this message]
2005-10-27 6:09 ` Jeffrey R. Carter
2005-10-27 6:46 ` Jean-Pierre Rosen
2005-10-27 2:46 ` Steve
2005-10-27 9:39 ` Georg Bauhaus
2005-10-27 15:07 ` 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