Abstract. Termination analysis has received considerable attention, traditionally in the context of declarative programming, and recently also for imperative languages. In existing approaches, termination is performed on source programs. However, there are many situations, including mobile code, where only the compiled code is available. In this work we present an automatic termination analysis for sequential Java Bytecode programs. Such analysis presents all of the challenges of analyzing a low-level language as well as those introduced by object-oriented languages. Interestingly, given a bytecode program, we produce a constraint logic program, CLP, whose termination entails termination of the bytecode program. This allows applying the large body of work in termination of CLP programs to termination of Java bytecode. A prototype analyzer is described and initial experimentation is reported.
Also, following the idea originally proposed in REF , Julia produces constraint logic programs whose termination implies the termination of the initial bytecode.
Termination analysis of Java Bytecode
In Proc. of the International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS ’08). Lecture Notes in Computer Science
Computer Science