Support for application input and output is provided in Q through the mechanism of I/O tasks. These identify functions which must be scheduled with care. They have three relevant characteristics:
Output tasks force the eduction of a program. Since the output of a program identifies what is ``useful'' computation, a program's evaluation is driven by periodic demands for its output tasks' input streams. The demand period is determined by the output device.