snykanen@cs.Helsinki.FI (01/09/91)
In article <12486@hubcap.clemson.edu> tkammeye@sdcsvax@ucsd.edu (Thomas E. Kammeyer) writes: >My version of the "C-linda Reference Manual" says: (section 3.4, page 19) > "A given tuple is evaluated and then added to tuple space with > the out() operation. Once the tuple has been added, the executing > process continues immediately." Your version of C-Linda is only one implementation of Linda-model. The point of my question was that is there an exact definition of out-operation at the level of a MODEL. The semantics of out-operation has been interpreted in different ways. Susanne Hupfer writes however following: "According to the semantics of current Linda, out(t) inserts an evaluated tuple t into tuple space. out in non-blocking: an out operation completes, and passes control to the next instruction, with no assurance that the out'ed tuple has already been installed in tuple space. The out semantics only guarantees that the tuple will eventually be installed in tuple space." (from Melinda: Linda with Multiple Tuple Spaces, YALEU/DCS/RR-766, February 1990, page 32) "Original" Linda did not have inp- and rdp-operations, so the non-blocking nature of out did not cause any problems. When inp and rdp was added to Linda, the semantics of out (in the level of a model) was not, according to text above, reconsidered. The current situation is that the semantics of out- and eval-operations has been interpreted in different ways. Zenith referenced in "Linda "definition" :Zenith replies 2.5" to report by James Names, where he writes that "...There are four basic types of process creation used in {\em eval} implementations; a given C-Linda implementation may use more than one." I have not yet read that report (it is not yet available here), but I have also realized that the semantics of eval can be interpreted in different ways. When portability is emphasized, it would be important to have exact definitions. Every implementor (even without knowing about each other) could then follow the same semantics and programs would run without no changes in other implementations. It would also be easier to make programs for heterogenous network, if you can be sure that the semantics of the operations are same in every machine. Lindas portability is however emphasized if many articles, see for example "Linda, the Portable Paralle" by Bjornson, Carriero, Gelernter and Leichter. Silja Nykanen