Efficient hybrid typestate analysis by determining continuation-equivalent states
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Monitor optimization via stutter-equivalent loop transformation
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Clara: partially evaluating runtime monitors at compile time tutorial supplement
RV'10 Proceedings of the First international conference on Runtime verification
Clara: a framework for partially evaluating finite-state runtime monitors ahead of time
RV'10 Proceedings of the First international conference on Runtime verification
Continuation equivalence: a correctness criterion for static optimizations of dynamic analyses
Proceedings of the Ninth International Workshop on Dynamic Analysis
Partially Evaluating Finite-State Runtime Monitors Ahead of Time
ACM Transactions on Programming Languages and Systems (TOPLAS)
Challenges in defining a programming language for provably correct dynamic analyses
ISoLA'12 Proceedings of the 5th international conference on Leveraging Applications of Formal Methods, Verification and Validation: technologies for mastering change - Volume Part I
Optimizing monitoring of finite state properties through monitor compaction
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Hi-index | 0.00 |
Designers of software components can use finite-state properties to denote behavioral interface specifications which enforce client-side programming rules that state how the components ought to be used. This allows users of these components to check their client code for compliance with these rules, both statically and at runtime.In this dissertation we explain the design and implementation of C LARA, a framework for specifying and verifying finite-state properties of large-scale programs. With CLARA, programmers specify finite-state properties together with runtime monitors, using a syntactic extension to the aspect-oriented programming language AspectJ. CLARA then uses a sequence of three increasingly detailed static analyses to determine if the program satisfies the finite-state properties, i.e., is free of property violations.CLARA produces a list of program points at which the program may violate the properties, ranked by a confidence value. If violations are possible, CLARA also instruments the program with the supplied runtime monitor, which will capture property violations when the program executes. Due to its static analyses, CLARA can omit the instrumentation at program locations which the analyses proved safe, and so optimize the instrumented program. When much instrumentation remains, CLARA partitions the instrumentation into subsets, so that one can distribute multiple partially instrumented program versions that each run with a low overhead.We validated the approach by applying CLARA to finite-state properties denoted in multiple formalisms over several large-scale Java programs. CLARA proved that most of the programs fulfill our example properties. For most other programs, CLARA could remove the monitoring overhead to below 10%. We also found multiple property violations by manually inspecting the top entries in CLARA's ranked result list.