Werner Dietl
wdietl@uwaterloo.ca, Room EIT 4007
Building and Using Pluggable Type-Checkers
Download: PDF.
“Building and Using Pluggable Type-Checkers” by W. Dietl, S. Dietzel, M. D. Ernst, K. Muslu, and T. W. Schiller. In Software Engineering in Practice Track, International Conference on Software Engineering (ICSE), May 2011, pp. 681-690.
Abstract
This paper describes practical experience building and using pluggable type-checkers. A pluggable type-checker refines (strengthens) the built-in type system of a programming language. This permits programmers to detect and prevent, at compile time, defects that would otherwise have been manifested as run-time errors. The prevented defects may be generally applicable to all programs, such as null pointer dereferences. Or, an application-specific pluggable type system may be designed for a single application.
We built a series of pluggable type checkers using the Checker Framework, and evaluated them on 2 million lines of code, finding hundreds of bugs in the process. We also observed 28 first-year computer science students use a checker to eliminate null pointer errors in their course projects.
Along with describing the checkers and characterizing the bugs we found, we report the insights we had throughout the process. Overall, we found that the type checkers were easy to write, easy for novices to productively use, and effective in finding real bugs and verifying program properties, even for widely tested and used open source projects.
Keywords: Checker Framework, evaluation
Download: PDF.
BibTeX entry:
@inproceedings{DietlDEMS11, author = {W. Dietl and S. Dietzel and M. D. Ernst and K. Muslu and T. W. Schiller}, title = {{Building and Using Pluggable Type-Checkers}}, booktitle = {{Software Engineering in Practice Track, International Conference on Software Engineering (ICSE)}}, month = may, }
Copyright notice: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author’s copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.
(This webpage was created with bibtex2web.)