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...
Main Authors: | , , , , |
---|---|
Other Authors: | |
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 |