Experiments with Non-Termination Analysis for Java']Java Bytecode

被引:2
作者
Payet, Etienne [1 ]
Spoto, Fausto [2 ]
机构
[1] Univ La Reunion, IREMIA, St Denis, Reunion, France
[2] Univ Verona, Dipartimento Informat, Verona, Italy
关键词
!text type='Java']Java[!/text; !text type='Java']Java[!/text] bytecode; static analysis; termination; non-termination;
D O I
10.1016/j.entcs.2009.11.016
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Non-termination analysis proves that programs, or parts of a program, do not terminate. This is important since non-termination is often an unexpected behaviour of computer programs and exposes a bug in their code. While research has found ways of proving non-termination of logic programs and of term rewriting systems, this is hardly the case for imperative programs. In this paper, we describe and experiment with a technique for proving non-termination of imperative, bytecode programs by relating their non-termination to that of a (constraint) logic program. Moreover, we show that our non-termination test effectively helps a termination test, by avoiding expensive search for termination proofs of those portions of the code where such proofs do not exist.
引用
收藏
页码:83 / 96
页数:14
相关论文
共 50 条
  • [11] Proving non-termination
    Gupta, Ashutosh K.
    Henzinger, Thomas A.
    Majumdar, Rupak
    Rybalchenko, Andrey
    Xu, Ru-Gang
    [J]. ACM SIGPLAN NOTICES, 2008, 43 (01) : 147 - 158
  • [12] Proving Non-Termination
    Gupta, Ashutosh K.
    Henzinger, Thomas A.
    Majumdar, Rupak
    Rybalchenko, Andrey
    Xu, Ru-Gang
    [J]. POPL'08: PROCEEDINGS OF THE 35TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2008, : 147 - 158
  • [13] From CIL to Java']Java bytecode: Semantics-based translation for static analysis leveraging
    Ferrara, Pietro
    Cortesi, Agostino
    Spot, Fausto
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2020, 191
  • [14] BAT(2)XML: XML-based Java']Java Bytecode Representation
    Eichberg, Michael
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2005, 141 (01) : 93 - 107
  • [15] Towards Verification of Well-Formed Transactions in Java']Java Card Bytecode
    Hansen, Rene Rydhof
    Siveroni, Igor A.
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2005, 141 (01) : 145 - 162
  • [16] Non-termination Proving at Scale
    Raad, Azalea
    Vanegue, Julien
    O'Hearn, Peter
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2024, 8 (OOPSLA):
  • [17] A second-order formulation of non-termination
    Mesnard, Fred
    Payet, Etienne
    [J]. INFORMATION PROCESSING LETTERS, 2015, 115 (11) : 882 - 885
  • [18] Unrestricted Termination and Non-termination Arguments for Bit-Vector Programs
    David, Cristina
    Kroening, Daniel
    Lewis, Matt
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS, 2015, 9032 : 183 - 204
  • [19] FuzzNT : Checking for Program Non-termination
    Karmarkar, Hrishikesh
    Medicherla, Raveendra Kumar
    Metta, Ravindra
    Yeduru, Prasanth
    [J]. 2022 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2022), 2022, : 409 - 413
  • [20] Provably correct control flow graphs from Java']Java bytecode programs with exceptions
    Amighi, Afshin
    Gomes, Pedro de Carvalho
    Gurov, Dilian
    Huisman, Marieke
    [J]. INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2016, 18 (06) : 653 - 684