[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Benefits of CSP Based Programming Languages
William,
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
---------------------------------------
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.