LISP and Symbolic Computation, 7(4)291-314

TS/Scheme: Distributed Data Structures in Lisp

Suresh Jagannathan, NEC Research Institute, 4 Independence Way, Princeton, NJ 08540

Abstract: We describe a parallel object-oriented dialect of Scheme called TS/SCHEME that provides a simple and expressive interface for building asynchronous parallel programs. The main component in TS/SCHEME's coordination framework is an abstraction that serves the role of a distributed data structure. Distributed data structures are an extension of conventional data structures insofar as many tasks may simultaneously access and update their contents according to a well-defined serialization protocol. The semantics of these structures also specifies that consumers which attempt to access an as-of-yet undefined element are to block until a producer provides a value.

TS/SCHEME permits the construction of two basic kinds of distributed data structures, those accessed by content, and those accessed by name. These structures can be further specialized and composed to yield a number of other synchronization abstractions. Our intention is to provide an efficient medium for expressing concurrency and synchronization that is amenable to modular programming, and which can be used to succinctly and efficiently describe a variety of diverse concurrency paradigms useful for parallel symbolic computing.

Keywords: symbolic computation, parallelism, distributed data structures, coordination, object-oriented computing

This article is not available online.
[picture of journal cover]

May 2003 - hosc@brics.dk