Topic: co-routines

topics > computer science > programming > Group: program control

parallel processing

actor machines
communicating sequential processes
concurrency control by monitors
control file
return from procedure
sequence generators
synchronized processing
Unix pipes


A co-routine is a routine with an independent state vector. Instead of calling the co-routine, the routine is resumed at its current state. 'For loop' statements and Fortran format statements include co-routine structures which generate new values on request. Other uses are streaming pipes of UNIX and program inversion used by Jackson. In these cases co-routines convert sequence processing into an incremental processing of the sequence's elements. With co-routines the sequence can be infinite, for instance a user input routine. (cbb 5/80)
Subtopic: co-routine, continuations up

Quote: co-routines are independently described structures, each of which exist in some state [»wileDS11_1973]
Quote: the environment for a procedure contains its variables and continuation point [»hansDR5_1978]
QuoteRef: conwME7_1963 ;;396 co-routine-- each routine sees other routines as input or output routine can be separated by intermediate storage device to take all output/input
QuoteRef: dahlOJ_1972a ;;13 for co-routines: a call, a resume (continue with), and a detach (return to previous caller will maintaining control)
Quote: if a procedure suspends execution instead of returning, it can be reactivated later; allows implementation of generators [»grisRE4_1979]
Quote: a 'resume' expression suspends the current environment and passes a value and the resumer's identity to another environment [»hansDR5_1978]
Quote: in SL5, 'return r to e' suspends environment, resumes environment e with value r; prior resumer of e unchanged [»hansDR5_1978]
QuoteRef: morrJH8_1972 ;;758 co-routine by "suspending" execution of a function with a returned value, next call resumes at same point

Subtopic: synchronous multi-processing up

Quote: the 8 1/2 windowing system is entirely synchronous; communicating co-routines for mouse, keyboard, and window clients; reads I/O pipe requests when coroutines are quiet [»pikeR6_1991]

Subtopic: data processing, program inversion up

Quote: program inversion turns a program to process a complete file, into one processing one record at a time [»jackMA_1975]
QuoteRef: cbb_1973 ;;3/4/74 finding a next element in a file generates an interrupt to return to caller; reduction is execution on get an interrupt
QuoteRef: cbb_1973 ;;3/30/74 output formats are a form of files i.e. co-routines

Subtopic: co-sequencing for infinite objects up

Quote: co-sequencing allows for infinite computational objects since only processing one element at a time
[»wileDS11_1973, OK]

Related Topics up

Group: parallel processing   (41 topics, 1125 quotes)

Topic: actor machines (2 items)
Topic: communicating sequential processes (33 items)
Topic: concurrency control by monitors (24 items)
Topic: continuation (16 items)
Topic: control file (10 items)
Topic: multi-tasking (22 items)
Topic: return from procedure (9 items)
Topic: sequence generators (16 items)
Topic: synchronized processing (35 items)
Topic: Unix pipes
(10 items)

Updated barberCB 4/04
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.