| Linda is a coordination language - it's the glue that allows modules expressed in ordinary "computation" languages to be cemented into parallel programs. The term "coordination language" is seeing increasingly general use to designate a variety of parallel environments, but we introduce it specifically to designate systems that were supported by compilers - to designate languages, in other words, and not mere communication libraries.
Because Linda is a useful coordination language, it would be worth knowing exactly what Linda means. If we knew, we would be able to tell whether Linda implementations really do what they ought to; we would also be able to use Linda in new ways, which have seemed interesting and attractive for some time but don't make sense without a formal Linda semantics. Because the Linda operations are simple and powerful, they seems like (potentially) a good basis for a specification-level coordination language - a language designed not for building coordinated systems but for specifying how they should behave. Linda's clarity, simplicity and power suggest that specifications in Linda would be relatively simple to build and understand - and of course they could easily be executable, if that were desirable. The presentation is designed to pin down the meaning of the tuple space operations; we show also by means of a simple but substantial examples how they could be used (once we understand their meaning) as a specification language for coordinated systems.
(Joint work with David Gelernter). |