Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
A multi-domain incremental analysis engine and its application to incremental resource analysis
Albert E., Correas J., Puebla G., Román-Díez G. Theoretical Computer Science585 (C):91-114,2015.Type:Article
Date Reviewed: Sep 17 2015

Incremental analysis means making efficient use of the results of analyzing an original program when a modified program is analyzed. This is likely to be of interest to anyone concerned with modifying software while preserving or improving its efficiency.

Three key contributions are presented in this paper: an algorithm that identifies precisely those previous results that have become invalid following program modification, leaving as many prior results as possible available for a new analysis; an incremental resource usage analysis that, given some cost metrics and an incremental analysis, computes the resource usage of a new program; and a new form of cost summary that reconstructs only the elements of cost functions affected by changes to the software.

The analysis algorithm acts on programs that are represented using a rule-based intermediate language. Java and other Java-like programming languages can be compiled into this intermediate representation. The rule-based intermediate language is amenable to abstract interpretation, which forms the basis for program analysis.

Analysis delivers calling and answer patterns, called the method summary, for each method of interest and each domain of interest. Given a change to a program and analysis results for the original, unmodified program, method summaries provide the basis for constructing new analysis results for all domains. Method summaries also provide the basis for incremental cost (resource usage) analysis.

Experimental investigation shows that incremental analysis is significantly faster than analysis performed without reference to previous results. A search for a situation where incremental analysis might be expected to perform worse found that incremental analysis performed as well as, or marginally better than, analysis from scratch.

Overall, the paper provides an interesting approach to program analysis that is likely to be applicable to software testing as well as to cost estimation.

Reviewer:  Edel Sherratt Review #: CR143785 (1512-1049)
Bookmark and Share
 
Software Engineering (D.2 )
 
 
Cost Estimation (D.2.9 ... )
 
 
Program Analysis (F.3.2 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Software Engineering": Date
Perspectives of system informatics: a comparative presentation of object-oriented programming with C++ and Java
Broy M. (ed), Zamulin A. (ed), Bjorner D., Springer-Verlag New York, Inc., Secaucus, NJ, 2002.  561, Type: Book (9783540430759)
Jul 3 2003
Relationship quality: the undervalued dimension of software quality
Russell B., Chatterjee S. Communications of the ACM 46(8): 85-89, 2003. Type: Article
Oct 14 2003
Executable JVM model for analytical reasoning: a study
Liu H., Moore J.  Interpreters, Virtual Machines and Emulators (Proceedings of the 2003 workshop, San Diego, California, Jun 12, 2003)15-23, 2003. Type: Proceedings
Sep 24 2003
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy