Group: parallel processing
Topic: actor machines
Topic: communicating sequential processes
Topic: concurrency control by monitors
Topic: continuation
Topic: control file
Topic: multi-tasking
Topic: return from procedure
Topic: sequence generators
Topic: synchronized processing
Topic: Unix pipes
| |
Summary
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
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
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
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
Quote: co-sequencing allows for infinite computational objects since only processing one element at a time [»wileDS11_1973, OK]
|
Related Topics
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)
|