Pluggable type-checking for custom type qualifiers in Java

We have created a framework for adding custom type qualifiers to the Javalanguage in a backward-compatible way. The type system designer definesthe qualifiers and creates a compiler plug-in that enforces theirsemantics. Programmers can write the type qualifiers in their programs andbe informed of...

Full description

Bibliographic Details
Main Authors: Papi, Matthew M., Ali, Mahmood, Correa Jr., Telmo Luis, Perkins, Jeff H., Ernst, Michael D.
Other Authors: Michael Ernst
Published: 2007
Online Access:http://hdl.handle.net/1721.1/38878
_version_ 1811083388630597632
author Papi, Matthew M.
Ali, Mahmood
Correa Jr., Telmo Luis
Perkins, Jeff H.
Ernst, Michael D.
author2 Michael Ernst
author_facet Michael Ernst
Papi, Matthew M.
Ali, Mahmood
Correa Jr., Telmo Luis
Perkins, Jeff H.
Ernst, Michael D.
author_sort Papi, Matthew M.
collection MIT
description We have created a framework for adding custom type qualifiers to the Javalanguage in a backward-compatible way. The type system designer definesthe qualifiers and creates a compiler plug-in that enforces theirsemantics. Programmers can write the type qualifiers in their programs andbe informed of errors or assured that the program is free of those errors.The system builds on existing Java tools and APIs.In order to evaluate our framework, we have written four type-checkersusing the framework: for a non-null type system that can detect andprevent null pointer errors; for an interned type system that can detectand prevent equality-checking errors; for a reference immutability typesystem, Javari, that can detect and prevent mutation errors; and for areference and object immutability type system, IGJ, that can detect andprevent even more mutation errors. We have conducted case studies usingeach checker to find real errors in existing software. These case studiesdemonstrate that the checkers and the framework are practical and useful.
first_indexed 2024-09-23T12:32:16Z
id mit-1721.1/38878
institution Massachusetts Institute of Technology
last_indexed 2024-09-23T12:32:16Z
publishDate 2007
record_format dspace
spelling mit-1721.1/388782019-04-12T09:30:39Z Pluggable type-checking for custom type qualifiers in Java Papi, Matthew M. Ali, Mahmood Correa Jr., Telmo Luis Perkins, Jeff H. Ernst, Michael D. Michael Ernst Program Analysis We have created a framework for adding custom type qualifiers to the Javalanguage in a backward-compatible way. The type system designer definesthe qualifiers and creates a compiler plug-in that enforces theirsemantics. Programmers can write the type qualifiers in their programs andbe informed of errors or assured that the program is free of those errors.The system builds on existing Java tools and APIs.In order to evaluate our framework, we have written four type-checkersusing the framework: for a non-null type system that can detect andprevent null pointer errors; for an interned type system that can detectand prevent equality-checking errors; for a reference immutability typesystem, Javari, that can detect and prevent mutation errors; and for areference and object immutability type system, IGJ, that can detect andprevent even more mutation errors. We have conducted case studies usingeach checker to find real errors in existing software. These case studiesdemonstrate that the checkers and the framework are practical and useful. 2007-09-20T19:21:48Z 2007-09-20T19:21:48Z 2007-09-17 MIT-CSAIL-TR-2007-047 http://hdl.handle.net/1721.1/38878 Massachusetts Institute of Technology Computer Science and Artificial Intelligence Laboratory 10 p. application/pdf application/postscript
spellingShingle Papi, Matthew M.
Ali, Mahmood
Correa Jr., Telmo Luis
Perkins, Jeff H.
Ernst, Michael D.
Pluggable type-checking for custom type qualifiers in Java
title Pluggable type-checking for custom type qualifiers in Java
title_full Pluggable type-checking for custom type qualifiers in Java
title_fullStr Pluggable type-checking for custom type qualifiers in Java
title_full_unstemmed Pluggable type-checking for custom type qualifiers in Java
title_short Pluggable type-checking for custom type qualifiers in Java
title_sort pluggable type checking for custom type qualifiers in java
url http://hdl.handle.net/1721.1/38878
work_keys_str_mv AT papimatthewm pluggabletypecheckingforcustomtypequalifiersinjava
AT alimahmood pluggabletypecheckingforcustomtypequalifiersinjava
AT correajrtelmoluis pluggabletypecheckingforcustomtypequalifiersinjava
AT perkinsjeffh pluggabletypecheckingforcustomtypequalifiersinjava
AT ernstmichaeld pluggabletypecheckingforcustomtypequalifiersinjava