From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Pascal Calling Convention
Date: Sat, 26 Mar 2011 15:51:08 -0400
Date: 2011-03-26T15:51:08-04:00 [thread overview]
Message-ID: <wccmxkhy82b.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 4d8cd25d$0$28492$882e7ee2@usenet-news.net
Hyman Rosen <hyrosen@mail.com> writes:
> On 3/25/2011 1:09 PM, Robert A Duff wrote:
>> Hyman Rosen<hyrosen@mail.com> writes:
>>
>>> On 3/25/2011 12:04 PM, Robert A Duff wrote:
>>>> There must be a stack.
>>>
>>> Why?
>>
>> Because Ada supports recursion, which implies a LIFO data structure --
>> a stack. One per task, in fact.
>
> Recursion just implies that when a procedure is called (or when any
> local scope is entered) it is allocated a separate set of its local
> variables. That can be done with tree-like allocation structures
> instead of a stack.
I'm not sure exactly what you mean by these tree-like things, but I think
each branch of that tree is really a stack.
I'll make an even bolder claim: Even without recursion and tasking,
there is always an implicit stack in Ada. That's because of the way
block statements and procedure calls are defined -- local variables
are created and destroyed (and initialized and finalized) in a LIFO
manner, and that's a stack, no matter how that stack is implemented.
>...In continuation-passing languages with garbage
> collection, returning from a procedure or exiting a scope does not
> imply freeing the variables of that scope, because that scope can
> be re-entered.
Sure, but that's not Ada.
- Bob
next prev parent reply other threads:[~2011-03-26 19:51 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-23 21:37 Pascal Calling Convention Shark8
2011-03-23 23:25 ` Yannick Duchêne (Hibou57)
2011-03-24 0:24 ` Randy Brukardt
2011-03-24 0:43 ` Yannick Duchêne (Hibou57)
2011-03-24 2:04 ` Shark8
2011-03-25 15:40 ` Yannick Duchêne (Hibou57)
[not found] ` <F8mdnYCca6tRJBfQnZ2dnUVZ_s-dnZ2d@earthlink.com>
2011-03-24 19:20 ` Keith Thompson
2011-03-25 16:04 ` Robert A Duff
2011-03-25 17:02 ` Hyman Rosen
2011-03-25 17:09 ` Robert A Duff
2011-03-25 17:35 ` Hyman Rosen
2011-03-26 19:51 ` Robert A Duff [this message]
2011-03-25 17:51 ` Keith Thompson
2011-03-26 20:46 ` Robert A Duff
2011-03-27 2:24 ` Randy Brukardt
2011-03-28 15:41 ` Adam Beneschan
2011-03-28 19:52 ` Robert A Duff
2011-03-29 2:32 ` Randy Brukardt
2011-03-29 6:06 ` Shark8
2011-03-29 23:45 ` Randy Brukardt
2011-03-29 19:19 ` Robert A Duff
2011-03-30 0:02 ` Randy Brukardt
2011-03-30 12:40 ` Robert A Duff
2011-03-30 19:40 ` Randy Brukardt
2011-03-30 20:56 ` tmoran
2011-03-30 22:34 ` Robert A Duff
2011-03-31 21:00 ` Randy Brukardt
2011-03-28 20:29 ` Hyman Rosen
2011-03-28 21:16 ` Adam Beneschan
2011-03-28 21:26 ` Hyman Rosen
2011-03-28 22:08 ` Adam Beneschan
2011-03-28 23:47 ` Georg Bauhaus
2011-03-29 12:23 ` stefan-lucks
2011-03-29 13:10 ` Hyman Rosen
2011-03-30 13:42 ` Phil Clayton
2011-03-31 7:40 ` Phil Clayton
2011-03-29 2:48 ` Hyman Rosen
2011-03-29 18:30 ` Robert A Duff
2011-03-29 23:25 ` Adam Beneschan
2011-03-30 12:50 ` Robert A Duff
2011-03-30 14:47 ` Adam Beneschan
2011-03-30 18:10 ` Robert A Duff
2011-03-29 3:01 ` Hyman Rosen
2011-03-29 18:22 ` Robert A Duff
2011-03-26 21:30 ` Florian Weimer
2011-03-27 16:18 ` Robert A Duff
2011-03-27 16:38 ` Florian Weimer
2011-03-27 16:56 ` Robert A Duff
2011-03-24 2:15 ` Shark8
2011-03-24 0:38 ` ytomino
2011-03-24 2:23 ` Shark8
2011-03-24 21:29 ` Gautier write-only
2011-03-25 12:47 ` Marco
2011-03-25 15:38 ` Yannick Duchêne (Hibou57)
2011-03-26 8:39 ` ObjectAda [was: Pascal Calling Convention] Gautier write-only
2011-03-26 14:05 ` Marco
2011-03-26 21:58 ` Gautier write-only
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox