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
相关论文
共 23 条
[1]  
BOL RN, 1991, THEOR COMPUT SCI, V86, P35, DOI 10.1016/0304-3975(91)90004-L
[2]  
Cousot P., 1977, P 4 ACM SIGACT SIGPL, DOI [10.1145/512950.512973, DOI 10.1145/512950.512973]
[3]  
DESCHREYE D, 1990, LOGIC PROGRAMM, P649
[4]  
Giesl J, 2005, LECT NOTES COMPUT SC, V3717, P216
[5]   DART: Directed automated random testing [J].
Godefroid, P ;
Klarlund, N ;
Sen, K .
ACM SIGPLAN NOTICES, 2005, 40 (06) :213-223
[6]   Proving Non-Termination [J].
Gupta, Ashutosh K. ;
Henzinger, Thomas A. ;
Majumdar, Rupak ;
Rybalchenko, Andrey ;
Xu, Ru-Gang .
POPL'08: PROCEEDINGS OF THE 35TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2008, :147-158
[7]  
LINDHOLM T, 1999, JAVATM VIRTUAL MACHI
[8]   Nontermination inference of logic programs [J].
Payet, E ;
Mesnard, F .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2006, 28 (02) :256-289
[9]  
Payet E., 2008, NONTERMINATION CRITE
[10]   Loop detection in term rewriting using the eliminating unfoldings [J].
Payet, Etienne .
THEORETICAL COMPUTER SCIENCE, 2008, 403 (2-3) :307-327