Path: utzoo!mnetor!tmsoft!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!think.com!mintaka!bloom-beacon!eru!hagbard!sunic!mcsun!ukc!reading!minster!yorkohm!don From: don@ohm.york.ac.uk (Don Goodeve) Newsgroups: comp.sys.transputer Subject: Re: Re producers and consumers Message-ID: <1991Feb12.153320.13923@ohm.york.ac.uk> Date: 12 Feb 91 15:33:20 GMT References: <1991Feb6.122949.8210@rodan.acs.syr.edu> Organization: Electronics Department, University of York, UK Lines: 51 in article <1991Feb6.122949.8210@rodan.acs.syr.edu>, greeny@wotan.top.cis.syr.edu (Jonathan Greenfield) says: > Occam is the rather ugly result of one attempt at including the elegant > concepts of CSP in a practical and efficient programming language. > > Jonathan Hmmm. well. The issue as to the aesthetic nature of occam is a rather subjective one. In my own experience, Occam (2) provides a consise, clear and expressive medium for coding parallel applications. Competitors such as parallel C etc. do not combine communications particularly elegantly and cause programmers to err on the side of coarse-grain programming. Occam and the transputer go together, both being developed along the lines of Hoares' CSP together. As a result, Occam is about 30% or so more efficient on the transputer in terms of binary size and execution speed than any other programming medium. This may be seen as a limitation. As a counter to this I would suggest that a general-purpose parallel machine needs a solid foundation. The combination of the transputer and occam does provide a unified foundation and is the only example of its' kind. The CSP notation is perhaps not the most expressive or useful notation. In a lot of ways it is limited in my opinion, but is very useful nevertheless. Milners' CCS provides a greater flexibility and expressiveness although it does not directly map to a language in the way that CSP does. The advantage of basing a complete system design on such a model as CCS (CSP) is the versatility that results. Any parallel programming language / paradigm can be represented in the form of CCS. A system which can efficiently manage a CCS-like language should therefore be able to support any paradigm built on this foundation. Some incomplete thoughts but I think you get the idea. As regards shared memory, why not?? - OK so suddenly multiple processes have to be bundled together to talk to the same section of memory (or to the same device ...). This is NOT a problem, I agree that large shared memories are bad news on the implementation front, but shared memory objects are not necassarily a bad idea. Enough rambling..... Back to work..... -- --------------------------------------------- | Don --- Well why not? Someone has got to be!| ---------------------------------------------