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 2007Publication 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. d'Amorim and K. Havelund. Event-based runtime verification of Java programs. In Int'l. W. Dyn. Anal., 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Dwyer, A. Kinneer, and S. Elbaum. Adaptive online program analysis. In Int'l. Conf. on Softw. Eng., May 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. C. Flanagan. Hybrid type checking. In Symp. on Principles of Prog. Lang., pages 245--256, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. B. Liblit, A. Aiken, and A. Zheng. Distributed program sampling. In Conf. on Prog. Lang. Design and Impl., pages 141--154, 2003.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. http://sofya.unl.edu.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. R. Vallée-Rai. SOOT: A Java bytecode optimization framework. Master's thesis, School of Computer Science, McGill University, Montreal, Canada., Oct 2000.Google ScholarGoogle Scholar

Index Terms

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

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • 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

                Copyright © 2007 ACM

                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]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 5 November 2007

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article

                Acceptance Rates

                Overall Acceptance Rate82of337submissions,24%

                Upcoming Conference

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader