Speaking of static analysis. I managed to get an evaluation version of
this software:
http://www.eschertech.com/products/
It works by changing the level of representation at which you write
software. Instead of writing imperative programs you write declarative
specifications. The problem is it's:
1. a new, unfamiliar and difficult to master syntax (and way of
thinking).
2. useless for already developed software.
3. limited in obscure and unobvious ways.
In particular, you can write a full and complete specification, ask it
to generate a program which implements that specification and it will
barf. You've done everything that should be required but the state of
the art of specification refinement that Perfect Developer embodies is
not sufficient to generate code for any given specification. So you
have to write code to do the "hard bits" of the specification, stating
how the program should operate, not just what the program should do.
That'd be fine if you could do it in a real programming language, but
instead you've gotta use the specification language. Programming in a
specification language is much like chinese water torture.
But it gives you an idea of just how extreme static analysis can be.
You literally can write some specifications in Perfect Developer that
can be verified for internal consistency, automatically refined into a
working prototype with good performance and deployed as is. Maybe in 10
years time all critical systems will be written with tools like this?
Maybe in 20 years time all other software will be written with tools
like this?
Trent
--
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html