home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / parallel / 1755 < prev    next >
Encoding:
Text File  |  1992-07-21  |  4.0 KB  |  90 lines

  1. Newsgroups: comp.parallel
  2. Path: sparky!uunet!gatech!hubcap!fpst
  3. From: Steven Ericsson Zenith <zenith@kai.com>
  4. Subject: 239 Re: CSP
  5. Message-ID: <1992Jul21.143458.21121@hubcap.clemson.edu>
  6. Sender: zenith@kai.com
  7. Organization:     Kuck and Associates,
  8.         1906 Fox Drive, Champaign IL USA 61820-7334,
  9.         voice 217-356-2288, fax 217-356-5199
  10. References:  <1992Jul13.155331.15756@hubcap.clemson.edu>
  11. Date: Thu, 16 Jul 1992 12:30:16 -0500
  12. Approved: parallel@hubcap.clemson.edu
  13. Lines: 75
  14.  
  15.  
  16. In article <1992Jul13.155331.15756@hubcap.clemson.edu>, Peter Thompson
  17. <thompson@inmos.co.uk> writes:
  18.     [request for CSP programs deleted]
  19.  
  20.     This is a slightly odd request, since CSP really isn't a programming
  21.     language.  We use quite a bit of CSP here, but as an algebra for
  22.     formal verification of hardware rather than as a means of writing
  23.     `programs'.
  24.  
  25. Peter is right here but I don't understand why this should be considered
  26. an odd request.
  27.  
  28. I have just heard that a parser and type checker will become available
  29. from Oxford in the near future. I won't give out an address here because
  30. I don't want to flood someone elses account with enquiries but I will
  31. make a point of either posting more info myself or encouraging Oxford to
  32. do so - when it becomes available.
  33.  
  34. Hoare's CSP book is excellent work, and I highly recommend it as an
  35. essential read for anyone interested in expressing the behavior of
  36. parallel programs but it doesn't really contain any substantial CSP
  37. "programs" (often called "scripts") the largest example is dining
  38. philosophers as I recall.
  39.  
  40.     On the other hand, there is a programming language called `occam'
  41.     which is based on the ideas of CSP, in which there is a very large
  42.     body of non-trivial programs.
  43.  
  44. This is not an unreasonable suggestion in itself but it should be made
  45. clear that Occam is only an implementation of a subset of CSP. In my
  46. view you do an injustice to CSP if you consider them equivalent. To do
  47. anything interesting - like reason about traces, interleaving, or stuff
  48. like subordination etc... you are compeled to return to CSP. On the
  49. other hand if you are only interested in processes and message passing
  50. Occam may be fine - but then a conventional language extended with MP
  51. and side effect free process support could do you just as well.
  52.  
  53. Occam advocates might come back and say "Hey, what about ALT?" and "I
  54. can write subordination if I want to!" To which my reply would be: as
  55. many *interesting* non-trival programs using these features probably
  56. exist in the public domain in CSP as exist in Occam and in those cases
  57. you will certainly gain more by looking at the CSP. CAVEAT: providing
  58. execution isn't important to you right now ;-)
  59.  
  60. One exception: Some interesting, though a little contrived, examples in
  61. Occam exist in Jones and Goldsmith's book "Programming in Occam 2"
  62. published by Prentice Hall. Whilst they are good Occam examples I think
  63. they (the examples) also highlight many of the problems of the language
  64. - as a programming language - and the message passing style.
  65.  
  66. One major problem for CSP is notation. The reason you'll find more Occam
  67. programs on the net, and hardly any CSP, is because CSP uses arrows,
  68. subscripts and other wacky symbols not easily reproduced in this medium.
  69.  
  70. It may also interest you to note that CSP in action is considered more a
  71. declarative language these days than an imperative language - though
  72. this is just a matter of style. Incidently: In Hoare's book
  73. implementation in LISP is considered.
  74.  
  75. Finally: Peter is right. CSP isn't a programming language really - it is
  76. a formalism, a mathematics for reasoning about program behavior. Now it
  77. would be interesting to hear some discussion in these forums on what
  78. that implies and why it might be important in high performance
  79. computing. CSP isn't the only such language of course - but it's
  80. certainly one that is accessible and has a credible history and
  81. evolution.
  82.  
  83. Steven Ericsson Zenith
  84.  
  85. PS. Occam isn't the only programming language whose semantics are based
  86. on a CSP foundation - among them is Ease.
  87.  
  88.  
  89.  
  90.