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

Building and using pluggable type systems

Published: 07 November 2010 Publication History
  • Get Citation Alerts
  • Abstract

    Are you a practitioner who is tired of null pointer exceptions, unintended side effects, SQL injections, concurrency errors, mistaken equality tests, and other run-time errors that appear during testing or in the field? A pluggable type system can guarantee the absence of these errors, and many more.
    Are you a researcher who wants to be able to quickly and easily implement a type system, giving you the ability to evaluate it in practice and to field it? You need a framework that supports these essential activities.
    This demo is aimed at both audiences. It describes both the theory of pluggable types and also the practice of implementing them. A simple pluggable type-checker can be implemented in 2 minutes, and can be enhanced thereafter. A type checkers is easy to create, easy for programmers to use, and effective in finding real, important bugs.
    The demo uses the Checker Framework, which enables you to create pluggable type systems for Java, while your code remains backward-compatible with all versions of Java. The ideas translate to other languages and toolsets. The tools are freely available at http://types.cs.washington.edu/checker-framework/.

    References

    [1]
    Chris Andreae, James Noble, Shane Markstrum, and Todd Millstein. A framework for implementing pluggable type systems. In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2006), pages 57--74, Portland, OR, USA, October 24-26, 2006.
    [2]
    Torbjörn Ekman and Görel Hedin. The JastAdd extensible Java compiler. In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2007), pages 1--18, Montréal, Canada, October 23--25, 2007.
    [3]
    Torbjörn Ekman and Görel Hedin. Pluggable checking and inferencing of non-null types for Java. Journal of Object Technology, 6(9):455--475, October 2007.
    [4]
    Michael D. Ernst. Type Annotations specification (JSR 308). http://types.cs.washington.edu/jsr308/, September 12, 2008.
    [5]
    Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea. Java Concurrency in Practice. Addison-Wesley, 2006.
    [6]
    David Greenfieldboyce and Jeffrey S. Foster. Type qualifier inference for Java. In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2007), pages 321--336, Montréal, Canada, October 23--25, 2007.
    [7]
    David Hovemeyer, Jaime Spacco, and William Pugh. Evaluating and tuning a static analysis to find null pointer bugs. In ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 2005), pages 13--19, Lisbon, Portugal, September 5-6, 2005.
    [8]
    Matthew M. Papi, Mahmood Ali, Telmo Luis Correa Jr., Jeff H. Perkins, and Michael D. Ernst. Practical pluggable types for Java. In ISSTA 2008, Proceedings of the 2008 International Symposium on Software Testing and Analysis, pages 201--212, Seattle, WA, USA, July 22-24, 2008.
    [9]
    Research Triangle Institute. The economic impacts of inadequate infrastructure for software testing. NIST Planning Report 02-3, National Institute of Standards and Technology, May 2002.
    [10]
    Matthew S. Tschantz and Michael D. Ernst. Javari: Adding reference immutability to Java. In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2005), pages 211--230, San Diego, CA, USA, October 18-20, 2005.

    Cited By

    View all
    • (2020)A type-and-effect system for object initializationProceedings of the ACM on Programming Languages10.1145/34282434:OOPSLA(1-28)Online publication date: 13-Nov-2020
    • (2011)Freedom before commitmentACM SIGPLAN Notices10.1145/2076021.204814246:10(1013-1032)Online publication date: 22-Oct-2011
    • (2011)Freedom before commitmentProceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications10.1145/2048066.2048142(1013-1032)Online publication date: 22-Oct-2011

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    FSE '10: Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
    November 2010
    302 pages
    ISBN:9781605587912
    DOI:10.1145/1882291

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 07 November 2010

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. checker framework
    2. java
    3. pluggable type-system
    4. type annotation
    5. type checking
    6. user-defined type system

    Qualifiers

    • Demonstration

    Conference

    SIGSOFT/FSE'10
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 17 of 128 submissions, 13%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)5
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2020)A type-and-effect system for object initializationProceedings of the ACM on Programming Languages10.1145/34282434:OOPSLA(1-28)Online publication date: 13-Nov-2020
    • (2011)Freedom before commitmentACM SIGPLAN Notices10.1145/2076021.204814246:10(1013-1032)Online publication date: 22-Oct-2011
    • (2011)Freedom before commitmentProceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications10.1145/2048066.2048142(1013-1032)Online publication date: 22-Oct-2011

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media