|
[4 Oct]Since our last meeting I did the following things:
I am beginning to like this particular topic very much – programming with assertions/specifications. I have been thinking about this since summer. But in course of implementing this must alias analysis, I am seeing that assertions are very effective in catching bugs. I think, till software verification becomes practical (I doubt it would ever be!), specification-based programming will the only practical and effective solution. Automated test generation is also too difficult to be useful for large general purpose program (more than Red-Black trees :). But I feel that it would be much more effective if assertions are written more systematically, which then become specification. The idea is not new. But I see there are very few systems: Java Modeling Language (Gary Leaven at iastate.edu) is the only tool that looks promising. But I dont see any program analysis being done to optimize the instrumentations that is needed to check the specification during runtime. Martin Rinard has recently published a tech report on "purity analysis" that checks some of the "pure method" assertions in JML statically. For JML, they have a compiler that translates the specifications into Java code and naively inserts that into the application. But I think there is a big scope for program analysis in optimizing these instrumentations. It will have also straight forward extension to on-the field instrumentation – how do we divide the instrumentation overhead among various copies of the software? Last modified 5 October 2004 at 1:02 am by Saswat Anand |