Linda is a model of process creation and coordination. It is independent of the computation of the processes and, therefore, can easily be embedded in a variety of base languages such as C, LISP, and FORTRAN. Not many parallel programming concepts can claim to have this property and yet, although it has been around for about five years, Linda is hardly discussed in the research community. The paper under review is an attempt to remedy this situation and put Linda alongside some familiar parallel programming models.
The paper first introduces Linda and discusses, with examples, some of its novel features, such as
unification of process creation and data communication;
encompassing coarse, medium, and fine-grained parallelism; and
coordinating programs in different languages, user programs and supervisors, and programs with their future incarnations.
The authors then give a list of existing experimental and commercial implementations of Linda. The focus of the paper, however, is on comparing Linda with conventional message-passing, concurrent object-oriented programming, concurrent logic programming, and functional programming systems. The comparison with message-passing systems is a surprise inclusion; it actually weakens the authors’ arguments. Being a language for distributed computing, Linda has to use some form of message-passing and, at a certain level of abstraction, one would view Linda as based on some kind of asynchronous message communication mechanism. The authors could at least have used a suitable categorization of message-passing systems. The comparisons with the other three parallel programming models are adequate and interesting, particularly because these models share the same applications domains with Linda. The authors’ approach to motivation by examples serves the overall purpose of the paper quite well. The paper is very pleasant reading. Otherwise, its detailed discussion of some well-worn subjects such as blocking of remote procedure calls and parallelizing compilers would have made it look a bit long-winded. I recommend this paper to anyone interested in distributed programming for artificial intelligence applications.