Interprocedural side-effect analysis in linear time
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Islands: aliasing protection in object-oriented languages
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
A safe approximate algorithm for interprocedural aliasing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Interprocedural modification side effect analysis with pointer aliasing
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Context-insensitive alias analysis reconsidered
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Simple and effective analysis of statically-typed object-oriented programs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Eraser: a dynamic data race detector for multi-threaded programs
Proceedings of the sixteenth ACM symposium on Operating systems principles
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Dynamically discovering likely program invariants to support program evolution
Proceedings of the 21st international conference on Software engineering
Scalable propagation-based call graph construction algorithms
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
JAC—access right based encapsulation for Java
Software—Practice & Experience - Special issue on aliasing in object-oriented systems
Pointer analysis: haven't we solved this problem yet?
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
A schema for interprocedural modification side-effect analysis with pointer aliasing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Points-to analysis for Java using annotated constraints
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Types and programming languages
Types and programming languages
The C++ Programming Language
Parameterized object sensitivity for points-to and side-effect analyses for Java
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
An efficient way to find the side effects of procedure calls and the aliases of variables
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Role-based exploration of object-oriented programs
Proceedings of the 24th International Conference on Software Engineering
Immutability specification and its applications
JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Sealing, Encapsulation, and Mutability
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Capabilities for Sharing: A Generalisation of Uniqueness and Read-Only
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
CHASE: A Static Checker for JML's Assignable Clause
VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
Hybrid dynamic data race detection
Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
Automatic detection of immutable fields in Java
CASCON '00 Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research
An Empirical Investigation of the Influence of a Type of Side Effects on Program Comprehension
IEEE Transactions on Software Engineering
Adapting side effects analysis for modular program model checking
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Precise Identification of Side-Effect-Free Methods in Java
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
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
An overview of JML tools and applications
International Journal on Software Tools for Technology Transfer (STTT) - Special section on formal methods for industrial critical systems
Behavior Capture and Test: Automated Analysis of Component Integration
ICECCS '05 Proceedings of the 10th IEEE International Conference on Engineering of Complex Computer Systems
Javari: adding reference immutability to Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Mining object behavior with ADABU
Proceedings of the 2006 international workshop on Dynamic systems analysis
Dynamic heap type inference for program understanding and debugging
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Feedback-Directed Random Test Generation
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Dynamic purity analysis for java programs
PASTE '07 Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
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
Pointer analysis for java programs: novel techniques and applications
Pointer analysis for java programs: novel techniques and applications
Type qualifier inference for java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Tools for enforcing and inferring reference immutability in Java
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
Combined static and dynamic mutability analysis
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Practical pluggable types for java
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Purity and side effect analysis for java programs
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Using inter-procedural side-effect information in JIT optimizations
CC'05 Proceedings of the 14th international conference on Compiler Construction
Augmenting automatically generated unit-test suites with regression oracle checking
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Declarative object identity using relation types
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
ReCrashJ: a tool for capturing and reproducing program crashes in deployed applications
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Inference and checking of object ownership
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
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
Inference and checking of context-sensitive pluggable types
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Hi-index | 0.00 |
Knowing which method parameters may be mutated during a method's execution is useful for many software engineering tasks. A聽parameter reference is immutable if it cannot be used to modify the state of its referent object during the method's execution. We formally define this notion, in a core object-oriented language. Having the formal definition enables determining correctness and accuracy of tools approximating this definition and unbiased comparison of analyses and tools that approximate similar definitions.We present Pidasa, a tool for classifying parameter reference immutability. Pidasa combines several lightweight, scalable analyses in stages, with each stage refining the overall result. The resulting analysis is scalable and combines the strengths of its component analyses. As one of the component analyses, we present a novel dynamic mutability analysis and show how its results can be improved by random input generation. Experimental results on programs of up to聽185 kLOC show that, compared to previous approaches, Pidasa increases both run-time performance and overall accuracy of immutability inference.