Computing: The Science of Nearly Everything

Computer Science…Research, Education and Policy

Posts Tagged ‘Software

Beware of bugs

leave a comment »

Beware of bugs in the above code; I have only proved it correct, not tried it.

Donald Knuth (in 1977; explanation here)

Written by Tom

13 April 2012 at 1:31 pm

Posted in Computer science

Tagged with , ,

Null References: “My Billion Dollar Mistake”

with 3 comments

I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn’t resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years. In recent years, a number of program analysers like PREfix and PREfast in Microsoft have been used to check references, and give warnings if there is a risk they may be non-null. More recent programming languages like Spec# have introduced declarations for non-null references. This is the solution, which I rejected in 1965.

Tony Hoare (speaking at QCon London 2009)

Written by Tom

4 March 2012 at 10:00 am

Posted in Computer science

Tagged with , ,

Creating simple software systems

with 5 comments

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.

Tony Hoare

Written by Tom

14 December 2011 at 10:42 pm