Prof. Dr. Michael Ernst(Massachussetts Institute of Technology)
"Preventing bugs with pluggable type-checking"
Type-checking helps to detect and prevent errors. However, a
programming language's built-in types are often incapable of expressing
important information, such as whether a variable may be null, whether a
value is intended to be side-effected, or whether a String is interned.
As a result, a type-correct program can suffer from null pointer
exceptions, incorrect mutations, errors in equality testing, and many
other types of problems.
User-definable extensions to the type system -- pluggable types -- can detect such errors, prevent them, or verify their absence. We present the first practical pluggable type system that integrates with a practical object-oriented programming language. Our framework works for Java, but the ideas are applicable to other languages. While the framework is compatible with all versions of the language, Java 7 will contain syntactic support for it, in the form of type annotations. Our system provides benefits to two communities.
* For programmers, it improves documentation and eliminates bugs. Case studies on multiple programs of more than 200,000 lines demonstrate these benefits.
* For type system designers, it makes it easy to implement and deploy a type system in the context of an industrial language. This enables realistic evaluation of research proposals. We illustrate this by presenting new insights about several type systems -- insights that had not been obtained through theoretical consideration or small-scale case studies.
|Zeit:||Montag, 24.11.2008, 17.15 Uhr|
|Ort:||Gebäude 48, Raum 210|