Academia.eduAcademia.edu

Outline

Avoid a Void: The Eradication of Null Dereferencing

2010, Reflections on the Work of C.A.R. Hoare

https://doi.org/10.1007/978-1-84882-912-1_9

Abstract

1 Repairing the one-billion-dollar mistake Tony Hoare recently spoke [6] about the issue of null dereferencing: 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.

References (10)

  1. Mike Barnett, Rustan Leino and Wolfram Schulte: The Spec# Programming System; CASSIS 2004, Lecture Notes in Computer Science 3362, Springer-Verlag, 2004.
  2. Craig Chambers et al., papers on the Self language at research.sun.com/self/papers/papers.html.
  3. Eiffel community: Void safety migration guide, at dev.eiffel.com/Void-Safe_Library_Status.
  4. Manuel Fähndrich and Rustan Leino: Declaring and Checking Non-null Types in an Object-Oriented Language; in OOPSLA 2003, SIGPLAN Notices, vol. 38 no. 11, November 2003, ACM, pp. 302-312.
  5. ECMA Technical Committee 39 (Programming and Scripting Languages) Technical Group 4 (Eiffel): Eiffel Analysis, Design and Programming Language, Draft international standard, April 2005.
  6. C.A.R. Hoare: Null References: The Billion Dollar Mistake, abstract of talk at QCon London, 9-12 March 2009, at qconlondon.com/london-2009/presentation/Null+References:+The+Billion+Dollar+Mistake.
  7. C.A.R. Hoare and Jay Misra: Verified Software: Theories, Tools, Experiments, Vision of a Grand Challenge Project, in VSTTE 2005, eds. B. Meyer and J. Woodcock, Lecture Notes in Computer Science 4171, Springer Verlag, 2008, pages 1-18.
  8. Bertrand Meyer: Object-Oriented Software Construction, 2nd edition, Prentice Hall, 1997.
  9. Bertrand Meyer: Principles of Language Design and Evolution, in Millenial Perspectives in Computer Science (Proceedings of the 1999 Oxford-Microsoft Symposium in Honour of Sir Tony Hoare), eds. Jim Davies, Bill Roscoe and Jim Woodcok, Cornerstones of Computing, Palgrave, Basingstoke-New York, 2000, pages 229-246.
  10. Bertrand Meyer, Attached Types and their Application to Three Open Problems of Object-Oriented Programming, in ECOOP 2005 (Proceedings of European Conference on Object-Oriented Programming, Edinburgh, 25-29 July 2005), ed. Andrew Black, Lecture Notes in Computer Science 3586, Springer Verlag, 2005, pages 1-32.