A Termination Analyzer for Java']Java Bytecode Based on Path-Length

被引:65
|
作者
Spoto, Fausto [1 ]
Mesnard, Fred [2 ]
Payet, Etienne [2 ]
机构
[1] Univ Verona, Dipartimento Informat, I-37134 Verona, Italy
[2] Univ Reunion, LIM, IREMIA, F-97715 St Denis Messag 9, France
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2010年 / 32卷 / 03期
关键词
Languages; Theory; Verification; Abstract interpretation; !text type='Java']Java[!/text; !text type='Java']Java[!/text] bytecode; termination analysis; SHAPE-ANALYSIS; LOGIC PROGRAMS; VERIFICATION; TOOL; ABSTRACTION; PROOFS; MODEL;
D O I
10.1145/1709093.1709095
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
It is important to prove that supposedly terminating programs actually terminate, particularly if those programs must be run on critical systems or downloaded into a client such as a mobile phone. Although termination of computer programs is generally undecidable, it is possible and useful to prove termination of a large, nontrivial subset of the terminating programs. In this article, we present our termination analyzer for sequential Java bytecode, based on a program property called path-length. We describe the analyses which are needed before the path-length can be computed such as sharing, cyclicity, and aliasing. Then we formally define the path-length analysis and prove it correct with respect to a reference denotational semantics of the bytecode. We show that a constraint logic program P-CLP can be built from the result of the path-length analysis of a Java bytecode program P and formally prove that if P-CLP terminates, then P also terminates. Hence a termination prover for constraint logic programs can be applied to prove the termination of P. We conclude with some discussion of the possibilities and limitations of our approach. Ours is the first existing termination analyzer for Java bytecode dealing with any kind of data structures dynamically allocated on the heap and which does not require any help or annotation on the part of the user.
引用
收藏
页数:70
相关论文
共 50 条
  • [1] COSTA: Design and Implementation of a Cost and Termination Analyzer for Java']Java Bytecode
    Albert, E.
    Arenas, P.
    Genaim, S.
    Puebla, G.
    Zanardini, D.
    FORMAL METHODS FOR COMPONENTS AND OBJECTS, 2008, 5382 : 113 - +
  • [2] Termination analysis of Java']Java Bytecode
    Albert, Elvira
    Arenas, Puri
    Codish, Michael
    Genaim, Samir
    Puebla, German
    Zanardini, Damiano
    FORMAL METHODS FOR OPEN OBJECT-BASED DISTRIBUTED SYSTEMS, PROCEEDINGS, 2008, 5051 : 2 - +
  • [3] Termination graphs for java bytecode
    LuFG Informatik 2, RWTH Aachen University, Germany
    Lect. Notes Comput. Sci., (17-37):
  • [4] Path Executions of Java']Java Bytecode Programs
    Soomro, Safeeullah
    Alansari, Zainab
    Belgaum, Mohammad Riyaz
    PROGRESS IN ADVANCED COMPUTING AND INTELLIGENT ENGINEERING, VOL 2, 2018, 564 : 261 - 271
  • [5] AUTOMATED TERMINATION ANALYSIS OF JAVA']JAVA BYTECODE BY TERM REWRITING
    Otto, Carsten
    Brockschmidt, Marc
    von Essen, Christian
    Giesl, Juergen
    PROCEEDINGS OF THE 21ST INTERNATIONAL CONFERENCE ON REWRITING TECHNIQUES AND APPLICATIONS (RTA'10), 2010, 6 : 259 - 275
  • [6] Experiments with Non-Termination Analysis for Java']Java Bytecode
    Payet, Etienne
    Spoto, Fausto
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2009, 253 (05) : 83 - 96
  • [7] Using CLP Simplifications to Improve Java']Java Bytecode Termination Analysis
    Spoto, Fausto
    Lu, Lunjin
    Mesnard, Fred
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2009, 253 (05) : 129 - 144
  • [8] Modular Termination Proofs of Recursive Java']Java Bytecode Programs by Term Rewriting
    Brockschmidt, Marc
    Otto, Carsten
    Giesl, Juergen
    22ND INTERNATIONAL CONFERENCE ON REWRITING TECHNIQUES AND APPLICATIONS (RTA'11), 2011, 10 : 155 - 170
  • [9] Java']Java bytecode verification
    Nipkow, T
    JOURNAL OF AUTOMATED REASONING, 2003, 30 (3-4) : 233 - 233
  • [10] Java']Java bytecode optimizations
    Lambright, HD
    IEEE COMPCON 97, PROCEEDINGS, 1997, : 206 - 210