Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1449814.1449831acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
demonstration

Enforcing reference and object immutability in Java

Published: 19 October 2008 Publication History

Abstract

Immutability information is useful in many software engineering tasks, such as modeling, verification, optimization, and refactoring. Furthermore, undesired mutation or side-effect are hard to detect and debug. This paper describes a javac plug-in that enables programmers to write immutability annotations in a Java program to detect and prevent bugs.
The IGJ annotations are rich and flexible; the tools are scalable; case studies show they are effective and easy to use; and the annotated program remains compilable with a standard compiler.

References

[1]
Joe Darcy. JSR 269: Pluggable annotation processing API. http://jcp.org/en/jsr/detail?id=269, May 17, 2006. Public review version.
[2]
Joshua Bloch. Effective Java Programming Language Guide Addison Wesley. Boston, MA 2001.
[3]
Matthew M. Papi, Mahmood Ali, Correa Jr., Telmo Luis, Jeff H. Perkins and Michael D. Ernst. Practical pluggable types for Java. In ISSTA, July 2008.
[4]
Jaime Quinonez, Matthew S. Tschantz, and Michael D. Ernst. Inference of reference immutability. In ECOOP, July 2008.
[5]
Michael D. Ernst and Danny Coward. JSR 308: Annotations on Java types. http://pag.csail.mit.edu/jsr308/, October 17, 2006.
[6]
Yoav Zibin, Alex Potanin, Mahmood Ali, Shay Artzi, Adam Kiezun, and Michael D. Ernst. Object and reference immutability using Java generics. In ESEC/FSE, September 2007.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA Companion '08: Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
October 2008
306 pages
ISBN:9781605582207
DOI:10.1145/1449814
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 October 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. IGJ
  2. assignable
  3. bug finding
  4. case study
  5. compiler
  6. flow-sensitive
  7. immutability
  8. java
  9. javac
  10. mutable
  11. polymorphism
  12. readonly
  13. type system
  14. verification

Qualifiers

  • Demonstration

Conference

OOPSLA08
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 185
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 20 Feb 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media