An efficient general iterative algorithm for dataflow analysis
Acta Informatica
An efficient hybrid algorithm for incremental data flow analysis
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
ACM SIGCSE Bulletin
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
A methodology for benchmarking Java Grande applications
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Compositional pointer and escape analysis for Java programs
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Automated Software Engineering
A Graph-Free Approach to Data-Flow Analysis
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Experimental Evaluation of Verification and Validation Tools on Martian Rover Software
Formal Methods in System Design
Advanced unit testing: how to scale up a unit test framework
Proceedings of the 2006 international workshop on Automation of software test
Subroutine Inlining and Bytecode Abstraction to Simplify Static and Dynamic Analysis
Electronic Notes in Theoretical Computer Science (ENTCS)
A systematic mapping study on the combination of static and dynamic quality assurance techniques
Information and Software Technology
JCML: A specification language for the runtime verification of Java Card programs
Science of Computer Programming
A unified approach for static and runtime verification: framework and applications
ISoLA'12 Proceedings of the 5th international conference on Leveraging Applications of Formal Methods, Verification and Validation: technologies for mastering change - Volume Part I
Hi-index | 0.00 |
Static analysis is usually faster than dynamic analysis but less precise. Therefore it is often desirable to retain information from static analysis for run-time verification, or to compare the results of both techniques. However, this requires writing two programs, which may not act identically under the same conditions. It would be desirable to share the same generic algorithm by static and dynamic analysis. In JNuke, a framework for static and dynamic analysis of Java programs, this has been achieved. By keeping the architecture of static analysis similar to a virtual machine, the only key difference between abstract interpretation and execution remains the nature of program states. In dynamic analysis, concrete states are available, while in static analysis, sets of (abstract) states are considered. Our new analysis is generic because it can re-use the same algorithm in static analysis and dynamic analysis. This paper describes the architecture of such a generic analysis. To our knowledge, JNuke is the first tool that has achieved this integration, which enables static and dynamic analysis to interact in novel ways.