Daisy/DSI Programming System

DSI is a system for symbolic multiprocessing based on the underlying operational model of suspending construction . The fundamental synchronization mechanism in this model is the suspension a transparent object representing a computation. Suspensions evolve into manifest data values, which can be inspected and manipulated by other computations. Computation is demand oriented, a relaxation of demand-driven computation in which a system with available processing resources can speculatively activate suspensions for bounded execution. We are interested in this model as a general basis for improving the performance of limited-scale multiprocessors. Daisy is a surface language for programming in the DSI system. Daisy is an applicative language (a mutation of Scheme) with provisions for exploiting a suspending list constructor. Among these provisions are constructs for building networks of streams, including windowing operations for stream-based I/O. These facilities make Daisy a good language for modeling networks of self-timed communicating processes.