[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Self-deadlock
Hello Peter
> 2. should we be looking to develop languages whose syntax/semantics do
> not allow the writing of programs that deadlock?
>
>In a sense, (2) was what the graphical occam Design Tool (oDT) was trying
>to do. That was a graphical language for designing process networks which
>understood certain design patterns (client-server, I/O-PAR and hybrids of
>these) for which we had formal proofs that the resulting designs were free
>from deadlock, livelock and process starvation. occam template codes were
>automatically generated from the designs. The problem was that the design
>patterns it knew about were not complete - there were some designs that
>were safe, but which neither wanted nor required the known patterns.
>In those cases, oDT allowed the designer not to specify to what pattern
>he/she was designing and turned off the checks.
The same could be said for any high-level language surely. There are many
sensible (correct?) programs one could compose in assembly language which
cannot be expressed in such a language. But we accept the loss of these
in return for security. (Many real (ie commercial) packages make
extensive use of assembly language components to circumvent compiler
checks that would reject their methods.)
I for one believe a language in which deadlock-free programs can be
written would be well worthwhile, even given the loss of expression that
results from the constraints imposed by known effective design rules.
No such thing as a free lunch...
Ian
PS Given that industry did not eventually "buy" occam, I very much doubt
if such progress would meet with anyones sheckles. How to "sell" better
software tools is another issue altogether. Back to my C programming...
Dr. Ian Robert East School of Computing and Mathematical Sciences
ireast@xxxxxxxxxxxxx Oxford Brookes University
(44) 1865 483635 Oxford OX3 0BP
"You can evolve what you could never design."
Consultation hours for 1999/2000 Term 2
Mon 14.00..16.00
Wed 09.00..11.00