Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1321631.1321651acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

Residual dynamic typestate analysis exploiting static analysis: results to reformulate and reduce the cost of dynamic analysis

Published: 05 November 2007 Publication History

Abstract

Programmers using complex libraries and frameworks are faced with the difficult task of ensuring that their implementations comply with complex and informally described rules for proper sequencing of API calls. Recent advances in static and dynamic techniques for checking explicit specifications of program typestate properties have shown promise in addressing this challenge. Unfortunately, static typestate analyses are limited in their scalability and dynamic analyses can suffer from significant run-time overhead. In this paper, we present an approach that exploits information calculated by flow-sensitive static typestate analyses to reformulate the original analysis problem as a residual dynamic typestate analysis. We demonstrate that residual analyses retain the error reporting of unoptimized dynamic analysis while offering the potential for significantly reducing analysis cost

References

[1]
H. Agrawal. Efficient coverage testing using global dominator graphs. In Works. on Prog. Anal. for Softw. Tools and Eng., pages 11--20, 1999.
[2]
M. Arnold and B. G. Ryder. A framework for reducing the cost of instrumented code. In Conf. on Prog. Lang. Design and Impl., pages 168--179, 2001.
[3]
E. Bodden, L. Hendren, and O. Lhotak. A staged static program analysis to improve the performance of runtime monitoring. In 21st Euro. Conf. on Obj.-Oriented Prog., 2007.
[4]
R. Bodik, R. Gupta, and V. Sarkar. Abcd: eliminating array bounds checks on demand. In Conf. on Prog. Lang. Design and Impl., pages 321--333, 2000.
[5]
M. d'Amorim and K. Havelund. Event-based runtime verification of Java programs. In Int'l. W. Dyn. Anal., 2005.
[6]
N. Dor, S. Adams, M. Das, and Z. Yang. Software validation via scalable path-sensitive value flow analysis. In Int'l. Symp. Softw. Test. Anal., pages 12--22, 2004.
[7]
M. Dwyer, G. Avrunin, and J. Corbett. Patterns in Property Specifications for Finite-state Verification. In Int'l. Conf. on Softw. Eng., May 1999.
[8]
M. Dwyer, A. Kinneer, and S. Elbaum. Adaptive online program analysis. In Int'l. Conf. on Softw. Eng., May 2007.
[9]
M. B. Dwyer, L. A. Clarke, J. M. Cobleigh, and G. Naumovich. Flow analysis for verifying properties of concurrent software systems. ACM Trans. Softw. Eng. Methodol., 13(4):359--430, 2004.
[10]
S. Fink, E. Yahav, N. Dor, G. Ramalingam, and E. Geay. Effective typestate verification in the presence of aliasing. In Int'l. Symp. Softw. Test. Anal., pages 133--144, 2006.
[11]
C. Flanagan. Hybrid type checking. In Symp. on Principles of Prog. Lang., pages 245--256, 2006.
[12]
S. L. Graham, P. B. Kessler, and M. K. Mckusick. Gprof: A call graph execution profiler. In Symp. on Compiler Construction, pages 120--126, 1982.
[13]
K. Havelund and G. Roşu. An overview of the runtime verification tool Java PathExplorer. Formal Meth. Sys. Design, 24(2):189--215, 2004.
[14]
M. Kim, M. Viswanathan, S. Kannan, I. Lee, and O. V. Sokolsky. Java-MaC: A run-time assurance approach for Java programs. Formal Meth. Sys. Design, 24(2):129--155, 2004.
[15]
A. Kinneer, M. Dwyer, and G. Rothermel. Sofya: Supporting rapid development of dynamic program analyses for java. In Int'l. Conf. on Softw. Eng., May 2007.
[16]
B. Liblit, A. Aiken, and A. Zheng. Distributed program sampling. In Conf. on Prog. Lang. Design and Impl., pages 141--154, 2003.
[17]
S. P. Midkiff, J. E. Moreira, and M. Snir. Optimizing array reference checking in java programs. IBM Syst. J., 37(3):409--453, 1998.
[18]
R. Sekar, V. Venkatakrishnan, S. Basu, S. Bhatkar, and D. C. DuVarney. Model-carrying code: a practical approach for safe execution of untrusted applications. In 16th Symp. on Op. Sys. Principles, pages 15--28, 2003.
[19]
http://sofya.unl.edu.
[20]
R. E. Strom and S. Yemini. Typestate: A programming language concept for enhancing software reliability. IEEE Trans. Softw. Eng., 12(1):157--171, 1986.
[21]
R. Vallée-Rai. SOOT: A Java bytecode optimization framework. Master's thesis, School of Computer Science, McGill University, Montreal, Canada., Oct 2000.

Cited By

View all
  • (2024)Fast Graph Simplification for Path-Sensitive Typestate Analysis through Tempo-Spatial Multi-Point SlicingProceedings of the ACM on Software Engineering10.1145/36437491:FSE(494-516)Online publication date: 12-Jul-2024
  • (2023)Instrumentation for RV: From Basic Monitoring to Advanced Use CasesRuntime Verification10.1007/978-3-031-44267-4_23(403-427)Online publication date: 1-Oct-2023
  • (2023)Residual Runtime Verification via Reachability AnalysisVerified Software. Theories, Tools and Experiments.10.1007/978-3-031-25803-9_9(148-166)Online publication date: 1-Feb-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASE '07: Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering
November 2007
590 pages
ISBN:9781595938824
DOI:10.1145/1321631
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 05 November 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. optimizing run-time monitors
  2. static error detection

Qualifiers

  • Research-article

Conference

ASE07

Acceptance Rates

Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2024)Fast Graph Simplification for Path-Sensitive Typestate Analysis through Tempo-Spatial Multi-Point SlicingProceedings of the ACM on Software Engineering10.1145/36437491:FSE(494-516)Online publication date: 12-Jul-2024
  • (2023)Instrumentation for RV: From Basic Monitoring to Advanced Use CasesRuntime Verification10.1007/978-3-031-44267-4_23(403-427)Online publication date: 1-Oct-2023
  • (2023)Residual Runtime Verification via Reachability AnalysisVerified Software. Theories, Tools and Experiments.10.1007/978-3-031-25803-9_9(148-166)Online publication date: 1-Feb-2023
  • (2022)Optimal Finite-State Monitoring of Partial TracesRuntime Verification10.1007/978-3-031-17196-3_7(124-142)Online publication date: 28-Sep-2022
  • (2021)A Two-Phase Approach for Conditional Floating-Point VerificationTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-030-72013-1_3(43-63)Online publication date: 27-Mar-2021
  • (2021)Model-Based Static and Runtime Verification for Ethereum Smart ContractsModel-Driven Engineering and Software Development10.1007/978-3-030-67445-8_14(323-348)Online publication date: 2-Feb-2021
  • (2020)A Unifying Framework for Dynamic Monitoring and a Taxonomy of OptimizationsLeveraging Applications of Formal Methods, Verification and Validation: Engineering Principles10.1007/978-3-030-61470-6_6(72-92)Online publication date: 20-Oct-2020
  • (2018)METIS: Resource and Context-Aware Monitoring of Finite State PropertiesRuntime Verification10.1007/978-3-030-03769-7_10(167-186)Online publication date: 8-Nov-2018
  • (2017)Control-Flow Residual Analysis for Symbolic AutomataElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.254.3254(29-43)Online publication date: 23-Aug-2017
  • (2016)A Model-Based Approach to Combining Static and Dynamic Verification TechniquesLeveraging Applications of Formal Methods, Verification and Validation: Foundational Techniques10.1007/978-3-319-47166-2_29(416-430)Online publication date: 5-Oct-2016
  • Show More Cited By

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