Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!clyde.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!apple!usc!wuarchive!emory!hubcap!snykanen From: snykanen@cs.Helsinki.FI (Silja Nykanen) Newsgroups: comp.parallel Subject: Re: A Linda Question (sending an answer from Jerry Leichter) Message-ID: <12494@hubcap.clemson.edu> Date: 7 Jan 91 13:47:39 GMT References: <12439@hubcap.clemson.edu> Sender: fpst@hubcap.clemson.edu Organization: University of Helsinki, Finland Lines: 43 Approved: parallel@hubcap.clemson.edu Thanks to Jerry Leichter (leichter@LRW.COM) for sending me an interesting reply to a Linda Question. At the end of the message he writes "Feel free to post a copy of this message to comp.parallel - I have no easy way of posting to Usenet newsgroups from here." .. so here is the copy of the message: You asked whether the code: out("tuple"); x = inp("tuple"); is guaranteed to set x to 1 (assuming, for the sake of simplicity, that tuple space is initially empty and that there are no other processes acting on it). The answer is, "probably". A better answer is: Forget about inp and rdp. They were a mistake that never belonged in the language; they happened to be trivial to add to a shared- memory implementation, so snuck in. But they cause a lot of problems in a distributed setting, confuse the semantics of the language, encourage the writing of buggy code, and ultimately add nothing to the expressiness of Linda. For arguments justifying these assertions, and a lot of discussion of Linda semantics, see my dissertation, "Shared Tuple Memories, Shared Memories, Buses and LAN's - Linda Implementations Across the Spectrum of Connectivity", available from the Yale Department of Computer Science as TR-714 (July 1989). (You'll probably get an answer from someone at Yale citing some recent paper in which a semantics which justifies the conclusion that x = 1 is cited. Don't take this to mean you should have been able to somehow guess that for yourself. Linda went along for years with an early 1960's-style "definition" with "obvious" semantics that no one ever bothered to write down - until, of course, what became "obvious" was that different readers (and different implementors) where finding different "obvious" interpretations.) Feel free to post a copy of this message to comp.parallel - I have no easy way of posting to Usenet newsgroups from here. -- Jerry