[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: CPS != call/cc
On Wednesday, August 6, 2003, at 08:01 PM, Dan Sugalski wrote:
> At 1:10 PM -0400 8/6/03, John Clements wrote:
>> On Wednesday, August 6, 2003, at 11:00 AM, Peter J. Wasilko, Esq.
>> wrote:
>>
>>>> Well... it can sort of help, but there are some limits. Multiple
>>>> stacks tend to solve other problems, and they're certainly useful,
>>>> but for a CPS scheme you really need more of a linked frame system
>>>> than a stack system, since the control information really builds up
>>>> a
>>>> tree (albeit one often with a single branch) rather than a stack.
>>>
>>> Dan,
>>>
>>> I see, so what would an optimal hardware architecture be for
>>> supporting CPS?
>>
>> CPS, or continuation-passing-style, is not the same thing as a
>> language that includes primitives for continuations.
>
> While true, the threads are all in the context of Parrot, so its all
> semantics and no language. (Well, unless you consider assembly a
> language, but that's stretching things a bit) The continuations we use
> as part of the CPS scheme are all first class continuations--the only
> difference between them and first class continuations you make
> explicitly is that sometimes you don't have to explicitly make them.
... and that's a HUGE difference. A difference in expressiveness.
All I'm saying is this: don't give another meaning to the well-defined
term CPS by using it to refer to any program that captures
continuations with call/cc or other similar primitives. That's not
what it means.
john clements