[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Benefits of CSP Based Programming Languages

As Eric pointed out, it is not easy to get CSP / occam in the automotive area. Also in other areas occam / CSP are not so heavily used as we would expect since we appreciate the advantages.
Years ago we did a project on redesign of software for a ship's autopilot using occam-like descriptions. It turned out that it could be done much faster, and also some serious flaws were discovered. We did it in the early 90's, in the context of the PhD work of Klaas Wijbrans. Unfortunately, on our publication web-page, only the bibliographic information is available and no electronic form (that time was before the pdf format....). Also, our MSc student report database does not cover that period.
Currently, we do research on design tools for dependable software, and at the last CPA conference (september, Eindhoven, NL) we presented a paper on exception handling in CSP based software for controllers of mechatronic systems. We use formal checking to test the quality. We have a prototype graphical tool for designing the software. see www.wotug.org/cpa2005, paper by Jovanovic et al. (the full paper text is not there, and also not yet on our own paper database, but a cpa2004 paper on it is availabe). Our software is on www.ce.utwente.nl/designtools but it is really really a prototype!!!
it targets to our Communicating Processes (CT) library, which actually implements occam constructs in C++. It can also generate CSP readable for the FDR2 model checker. So, from one graphical description, you can both generate CSP and C++, so conclusion from checks done in FDR2 are valid for the generated C++ code. However, there is not so much testing and validation involved in our tools.
Hopefully, this can structure your thoughts.
best regards,
Jan Broenink

Jan F. Broenink
University of Twente,
Control Engineering, Faculty EE-Math-CS
PO Box 217
NL-7500 AE ENSCHEDE, Netherlands
ph: +31 53 489 2793, fax: +31 53 489 2223
fax2mail: +31 84 751 1173
www: http://www.ce.utwente.nl/bnk

From: owner-occam-com@xxxxxxxxxx [mailto:owner-occam-com@xxxxxxxxxx] On Behalf Of william.luitje@xxxxxxxxxxxxxxxx
Sent: woensdag 2 november 2005 0:31
To: occam-com@xxxxxxxxxx
Subject: Benefits of CSP Based Programming Languages

I am a new list member, so please pardon me if this topic has already been covered.

I am writing a paper for the Society of Automotive Engineers spring congress about what potential benefits developers of automotive embedded software are missing when they write in C. I plan to use occam as an example of how pervasive embedded computing concepts, like time, concurrency, multiprocessing and communications, can be built into a language. I have already created small example programs in occam that illustrate how handling these difficult issues can be greatly simplified when using a suitable programming language.

That should serve to motivate a claim that use of such a language could result in greatly reduced development time and a higher quality finished product, which are both hot topics in the field of automotive software. Has anyone actually performed an experiment or done a study with a CSP based language to see if such benefits are actually realized? If so, what degree of improvement was observed?

There is also great interest in the automotive industry in doing testing and validation. CSPs are rigorously defined mathematical constructs that can be manipulated with a calculus. Since occam implements them directly, it should be easy to analyze. That suggests the possibility of tools to perform automated analysis or formal proofs of consistency, deadlocks, timing, etc. From looking at Hoare's CSP book that seems theoretically possible. Are such tools currently available? If so, what kinds and how practical are they? What other kinds of testing and validation are facilitated?

Thanks for any information you can provide and remember you needn't restrict answers to occam.