Multiple Returns, was Re: Common Lisp style macros in Smallta
lk?
Stewart MacLean
stewart.maclean at nzhis.govt.nz
Mon Jan 31 22:18:29 UTC 2000
Not sure about continuations, but I'll have a stab at co-routines.
Co-routines consist of two processes, each with it's own state and executing
quasi concurrently.
An example might be a producer and consumer process pair. Say
P =()=> Q where they are connected via a stream.
The process Q will block until P writes something to the stream. P's writing
can be made either synchronous or asynchronous. Q is said to be re-entrant,
as it preserves it's state between invocations.
To implement this in Smalltalk you would have two processes, the scheduling
of which would be controlled by a Semaphore. See SharedQueue. Using COBOL
(what!?) you would need to separate out the state and have a goto to the
particular resume point in the code, depending on it's previously suspended
state.
Hope this helps,
Stewart
> OK, I'll exhibit my ignorance :-). What are continuations,
> and what are
> they useful for? Same questions for coroutines.
>
> Bob Jarvis
> Compuware @ Timken
>
> > -----Original Message-----
> > From: Vassili Bykov [SMTP:vassili at objectpeople.com]
> > Sent: Thursday, January 27, 2000 8:19 AM
> > To: squeak at cs.uiuc.edu
> > Subject: RE: Multiple Returns, was Re: Common Lisp style
> macros in
> > Smalltalk?
> >
> > > From: demiourgos at smalltalk.org [mailto:demiourgos at smalltalk.org]
> > > But I have wondered from time to time -- not having deep
> process-based
> > > experience in Smalltalk (applications instead) -- how one
> might go about
> > > implementing coroutines or continuations in the manner of
> Scheme. Or
> > > are these things too far out of the Smalltalk model?
> >
> > I implemented continuations for Squeak a couple of year ago. Nobody
> > seemed
> > particularly impressed, so even if they are not far out of
> the Smalltalk
> > implementation, they are far out of the Smalltalk thinking.
> >
> > --Vassili
>
More information about the Squeak-dev
mailing list
|