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


>The neat thing about occam is that it enables the *ordinary* programmer
>on the Clapham omnibus to engage successfully in complex design and
>implementation.  You don't need to be fluent in CSP to get its advantages
>... you just need to use something that has its simple formalisms and
>compositional semantics built-in.  And OO just doesn't hack it ...
To add my fourpenny's worth:
I agree entirely that we need tools that do not require explicit maths 
each time you design a new system. The brief I gave Jeremy for a PhD 
project was (to paraphrase): Older, more mature, engineering disciplines 
rely, not upon explicit maths, but upon DESIGN RULES that _encapsulate_ 
the necessary mathematical principles, and which are easily applied with 
only modest knowledge and ability expected.

This is precisely why we use a high level programming language in 
preference to an assembler. Those rules of syntax are design rules. They 
reduce the number of programs we may write in exchange for certain 

To me, by far the most significant result of Jeremy's work was that, not 
only are such design rules possible for programs (with formal rigorous 
proof), but that they are...
1  Not unduly restrictive
2  Permit _automated_ validation _a priori_ with acceptable complexity 
(i.e. applicable
   to large programs, not just toys). I wonder how far mechanical 
engineering would have
   progressed if design relied only upon 'a posteriori' formal methods, 
like most of those
   touted for software design, which impose mere trial and error.

I have since devoted much thought to whether this allows for a "super 
occam", in which no valid program can deadlock.

PS Just for the record, I seriously doubt the value of inheritance. 
Outside of big application frameworks, I have seen precious little 
worthwhile use. Somewhere (don't press me for reference) I have seen 
published surveys that support the claim of little tangible benefit. At 
very least, IMHO it should be confined to compile-time, and not invade 
run-time. It's (synchronous) message-passing that matters. 

Adoption of new ideas clearly has little to do with tangible benefit and 
a lot more to do with fashion, and sounding plausible. A bit like 
business computing, which, according to a Harvard Business School 
academic, has failed to yield any improvement so far in US business 

Dr. Ian Robert East                               Ian.East@xxxxxxxxxxxxxx
                                                  (+44) (0) 1865 373268

57, Kidlington Road, Islip, Oxfordshire OX5 2SS, England