carriero@YALE.EDU (Nicholas Carriero) (05/08/89)
Mark Miller writes-- M-Linda probably does satisfy all the criteria as well as Actors & CLP (it's hard to know, only having seen an in-depth description of S-Linda). In M-Linda used for open systems, each tuple space individually would correspond to a trust boundary. Therefore, with regard to open system properties, we can regard all compuation proceeding inside a single tuple space as a single agent. ... Assuming my description of M-Linda is reasonably accurate, then the computational model of M-Linda among these macro agents isn't that different for Actors (a tuple space is like a mailbox) or CLP (a tuple space is like a logic variable). As Ken points out, this M-Linda would have many of the "flaws" of which the Linda folk accuse message passing systems & CLP languages. We can accept the first paragraph but not the second. Mark's description of M-Linda captures the flavor of what we have in mind quite accurately. (The details require too much space for posting, but for anyone who's interested, our multiple-ts paper will appear in PARLE 89.) Multi-Linda has strong support for modularity. But this scarcely means that it reduces to Actors or CLP. When I "out" to a specified tuple space rather than to the global space, I'm narrowing the space of possible recipients for this tuple. But this does NOT mean that I'm sending the tuple to some particular process or Actor. Ten thousand servers may all have rights to pick up this kind of tuple; one generation of server processes may die out and be replaced by a different set; tuples directed to the server may be incorporated in a distributed data structure which is built cooperatively by many clients and consumed by many servers; the tuple space may be transparently replaced by a file (i.e. a persistent tuple space) and only examined much later, & so on. This sub-tuple space, in other words, retains all the properties of anonymous and uncoupled communication that we consider indispensable. But, so long as access to the "server" tuple space is restricted, we can achieve any kind of modularity and security we want. If the Linda people are effectively arguing that S-Linda is superior to Actors & CLP for parallel programming in the small & medium, while M-Linda gives you the good properties of Actors & CLP in the large (at the "costs" of Actors & CLP) that would indeed be an interesting and significant argument. It would however concede Ken's initial point about uniformity. We're arguing rather that M-Linda gives you the good properties of S-Linda in the large, plus modularity. We have already conceded Ken's initial point, in spades. Linda's model of parallelism rejects uniformity with any given base language in order to achieve a unified model of coordination in general. (Our first talk to incorporate this emphatic acceptance of Ken's point was at Apple & happens to have been attended by Ken, who will vouch for it.) But there's no non-uniformity between S-Linda & M-Linda. Linda's structured name space has ALWAYS supported the creation of tuple sub-pools; this is basic to Linda programming. But these sub-pools are still tuple spaces, NOT processes -- that's the crucial point. Nick & Dave