Modular termination analysis of java bytecode and its application to phoneME core libraries

  • Authors:
  • D. Ramírez-Deantes;J. Correas;G. Puebla

  • Affiliations:
  • DLSIIS, Technical University of Madrid (UPM), Spain;DSIC, Complutense University of Madrid (UCM), Spain;DLSIIS, Technical University of Madrid (UPM), Spain

  • Venue:
  • FACS'10 Proceedings of the 7th international conference on Formal Aspects of Component Software
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Termination analysis has received considerable attention, traditionally in the context of declarative programming and, recently, also for imperative and Object Oriented (OO) languages. In fact, there exist termination analyzers for OO which are capable of proving termination of medium size applications by means of global analysis, in the sense that all the code used by such applications has to be proved terminating. However, global analysis has important weaknesses, such as its high memory requirements and its lack of efficiency, since often some parts of the code have to be analyzed over and over again, libraries being a paramount example of this. In this work we present how to extend the termination analysis in the COSTA system in order to make it modular by allowing separate analysis of individual methods. The proposed approach has been implemented. We report on its application to the termination analysis of the core libraries of the phoneME project, a well-known open source implementation of Java Micro Edition (JavaME), a realistic but reduced version of Java to be run on mobile phones and PDAs. We argue that such experiments are relevant, since handling libraries is known to be one of the most relevant open problems in analysis and verification of real-life applications. Our experimental results show that our proposal dramatically reduces the amount of code which needs to be handled in each analysis and that this allows proving termination of a good number of methods for which global analysis is unfeasible.