Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
The Java Language Specification
The Java Language Specification
Towards Safer Aliasing with the Eiffel Language
Proceedings of the Workshop on Object-Oriented Technology
Declaring and checking non-null types in an object-oriented language
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
A practical type system and language for reference immutability
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Javari: adding reference immutability to Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Evaluating and tuning a static analysis to find null pointer bugs
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Type-safe modular hash-consing
Proceedings of the 2006 workshop on ML
A framework for implementing pluggable type systems
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Object and reference immutability using Java generics
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
The jastadd extensible java compiler
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Type qualifier inference for java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Declarative object identity using relation types
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Non-null references by default in java: alleviating the nullity annotation burden
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Inference of Reference Immutability
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Compile-time type-checking for custom type qualifiers in Java
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Enforcing reference and object immutability in Java
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Compile-time type-checking for custom type qualifiers in java
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Parameter reference immutability: formal definition, inference tool, and comparison
Automated Software Engineering
A non-null annotation inferencer for Java bytecode
Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
CADE-22 Proceedings of the 22nd International Conference on Automated Deduction
Type-Based Object Immutability with Flexible Initialization
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
JavaCOP: Declarative pluggable types for java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Enforcing structural regularities in software using IntensiVE
Science of Computer Programming
Proceedings of the 2010 ACM Symposium on Applied Computing
Null dereference analysis in practice
Proceedings of the 9th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Writing concurrent desktop applications in an actor-based programming model
Proceedings of the 3rd International Workshop on Multicore Software Engineering
Class properties for security review in an object-capability subset of Java: (short paper)
PLAS '10 Proceedings of the 5th ACM SIGPLAN Workshop on Programming Languages and Analysis for Security
Ownership and immutability in generic Java
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Building and using pluggable type systems
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Rethinking the economics of software engineering
Proceedings of the FSE/SDP workshop on Future of software engineering research
Tackling pointcut fragility with dynamic annotations
Proceedings of the 7th Workshop on Reflection, AOP and Meta-Data for Software Evolution
The nullness analyser of JULIA
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
Proceedings of the sixth annual workshop on Domain-specific aspect languages
Inference of field initialization
Proceedings of the 33rd International Conference on Software Engineering
Building and using pluggable type-checkers
Proceedings of the 33rd International Conference on Software Engineering
EnerJ: approximate data types for safe and general low-power computation
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Software and Systems Modeling (SoSyM)
TOOLS'11 Proceedings of the 49th international conference on Objects, models, components, patterns
Tunable static inference for generic universe types
Proceedings of the 25th European conference on Object-oriented programming
Freedom before commitment: a lightweight type system for object initialisation
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Separating ownership topology and encapsulation with generic universe types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
A type system for regular expressions
Proceedings of the 14th Workshop on Formal Techniques for Java-like Programs
Verification games: making verification fun
Proceedings of the 14th Workshop on Formal Techniques for Java-like Programs
Static analysis of Android programs
Information and Software Technology
Reachability analysis of program variables
IJCAR'12 Proceedings of the 6th international joint conference on Automated Reasoning
Inference and checking of object ownership
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Reducing the barriers to writing verified specifications
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Reim & ReImInfer: checking and inference of reference immutability and method purity
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
ReImInfer: method purity inference for Java
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Feature-oriented language families: a case study
Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems
Modular and automated type-soundness verification for language extensions
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Reified type parameters using Java annotations
Proceedings of the 12th international conference on Generative programming: concepts & experiences
JavaUI: effects for controlling UI object access
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Reachability analysis of program variables
ACM Transactions on Programming Languages and Systems (TOPLAS)
Adoption and use of Java generics
Empirical Software Engineering
Hi-index | 0.00 |
This paper introduces the Checker Framework, which supports adding pluggable type systems to the Java language in a backward-compatible way. A type system designer defines type qualifiers and their semantics, and a compiler plug-in enforces the semantics. Programmers can write the type qualifiers in their programs and use the plug-in to detect or prevent errors. The Checker Framework is useful both to programmers who wish to write error-free code, and to type system designers who wish to evaluate and deploy their type systems. The Checker Framework includes new Java syntax for expressing type qualifiers; declarative and procedural mechanisms for writing type-checking rules; and support for flow-sensitive local type qualifier inference and for polymorphism over types and qualifiers. The Checker Framework is well-integrated with the Java language and toolset. We have evaluated the Checker Framework by writing 5 checkers and running them on over 600K lines of existing code. The checkers found real errors, then confirmed the absence of further errors in the fixed code. The case studies also shed light on the type systems themselves.