Write it right or right the wrongs?
March 2005
In the continued search for ways of making systems that we can really
trust, there's long been two opposing trends: pushing for better
techniques and tools to produce software that will work the first time
around ("Write it right"); and hoping for tools that, accepting programs
have bugs, will catch them ("Right the wrongs").
Forty years ago (following some early insights of Alan Turing)
researchers started to investigate "program proving". After a while they
accepted that you can't prove a program unless it's been written right
from the start with that goal in mind; and it seemed, in research at
least, that the "a priorists" had gained the upper hand. All the while,
however, tools for static analysis and debugging continued to improve.
Eiffel is firmly into "Write it right", with its constant emphasis on
design principles, on contracts, on structure. I noted in my last column
how bizarre I find the idea of expecting software to be written any good
old way, and then having some magical tool extract the contracts for
you. Of course the "Right the wrongs" part is there too, as with the
sophisticated debugger of EiffelStudio (watch for new advances in
forthcoming versions) and the work done at ETH to generate tests
completely automatically from contracts.
The field will for still quite some time need to rely on both
approaches. For those readers of EiffelWorld interested in following the
progress in the field, let me point out a milestone event that will take
place in Zurich in October (10-13) and to which there is still time to
submit a position paper: the conference on Verified Software: Theories,
Tools, Experiments ETH Zurich, 10-13 October 2005
http://vstte.ethz.ch.
The conference is the brainchild of Tony Hoare as part of his relentless
efforts to start a "Grand Challenge"
on software verification. It is an official IFIP conference,
specificially its Technical Committee 2 (Software) and more specifically
still its Working Group 2.3 (Programming Methodology).
The event is part of an extensive program of celebrations for the 150th
anniversary of ETH Zurich. Sponsors include ETH, Microsoft Research and
the US National Science Foundation.
The roster of organizers and invited speakers reads like a who's who of
the pioneers and innovators in formal methods, program proving, model
checking, abstract interpretation, program refinement etc. I know that
it will be a watershed event.
The conference is by invitation only and the number of seats is limited.
The best way to get invited is
to submit a position paper (click "Submit" at http://vstte.ethz.ch). It
would be great to have a few position papers from the readers of this
newsletter, showcasing their Eiffel experience.
In the meantime, continue to write it right, but don't forget all the
same to chase the wrongs.
--Bertrand Meyer
|