期刊文献+

基于递推链代数与迭代序列敛散性的死循环检测 被引量:2

Infinite Loop Detection Based on Chains of Recurrence Algebra and Convergence of Iterative Sequence
下载PDF
导出
摘要 该文针对两大类循环分别给出了非终止性判定的数学方法.首先,针对基本迭代关系为线性或几何性的循环提出了基于递推链代数的分析方法.通过递推链代数将循环变量进行统一表示,根据运算规则推导出循环条件关于迭代次数的闭形式函数,然后通过约束求解以及单调性判断循环的非终止性.其次,针对一元非线性循环提出了基于迭代序列敛散性的分析方法.根据迭代函数以及不动点判断迭代函数产生的迭代序列的敛散性来判断循环的非终止性.实验部分采用Velroyen[20]的52组循环、文献[18-19,21-23]的23组循环、文献[3]以及自组的13组循环进行分析验证,结果表明该文所提出的方法能有效地判断循环的非终止性:若循环无法终止,可以推导出循环无法终止的变量约束;若循环可终止,则可以估算循环的迭代次数. In this paper, two mathematical methods are proposed to detect the non-termination of two types of loop. The first method is based on chains of recurrence algebra. It is for detecting the non-termination of the loops in which the basic iterative relations of variables are linear or geometrical. All the variables in the loop are unified representation by the Chains of Recurrence Algebra (CR). Then the closed-form function of the loop condition about the number of loop iter- a'tion is deduced by the rules of CR. According to it the non-termination of loops can be decided through the monotonicity of the closed-form function and constraint solver. The second method is based on convergence of iterative sequence, which is {or detecting the non-termination of the non- linear loop. According to the convergence of iterative function and fixed-point we can determine the non-termination of the loops. In experiments, we analyzed 52 loops which were presented by Velroyen[20] and 23 loops which are from articles [18-19, 21-23] and 13 loops which are created by ourselves. The experimental results show that it can detect the non-termination of loop effec- tively. It can give the variable constraints which make the loop non-terminated. Meanwhile the number of loop iterations can be estimated when the loop is terminated.
出处 《计算机学报》 EI CSCD 北大核心 2013年第11期2245-2256,共12页 Chinese Journal of Computers
基金 南京大学计算机软件新技术国家重点实验室开放课题(KFKT2010B22) 天津市自然科学基金重点项目(12JCZDJC20800)资助~~
关键词 死循环检测 静态分析 递推链代数 迭代函数收敛性 软件工程 infinite loop detection static analysis chains of recurrence algebra convergence ofiterative function software engineering
  • 相关文献

参考文献27

  • 1Ashish Tiwari. Termination of linear programs//Proceedings of the International Conference on Computer Aided Verifica- tion (CAV 2004). Boston, USA, 2004: 387-390.
  • 2Zantema H. Classifying termination of term rewriting. Utrecht University, Netherlands: Technical Report, RUU- CS 91-42, 1991.
  • 3姚勇.区间上非线性程序的终止性判定[J].软件学报,2010,21(12):3116-3123. 被引量:8
  • 4Coloon M A, Sipma H B. Synthesis of linear ranking fune- tions//Proceedings of the 7th Tool and Algorithms for the Construction and Analysis of Systems. Genova, ItaIy, 2001: 67-81.
  • 5Cook B, Gotsman A, Podelski A, et al. Proving that pro- grams eventually do something good//Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Prin- ciples of Programming Languages. New York, USA, 2007: 265-276.
  • 6Cook B, Gulwani S, Lev-Ami T, et al. Proving Conditional Termination//Proeeedings of the 20th International Conference on Computer Aided Verification (CAV 2008). Princeton, USA, 2008:328-340.
  • 7Cook B, Podelski A, Rybalchenko A. Termination proofs for systems code//Proceedings of the ACM SIGPLAN 2006 Conference on Programming Language Design and Implemen- tation. Ottawa, Canada, 2006:415-426.
  • 8Podelski A, Rybalchenko A. A complete method for the synthesis of linear ranking functions//Proceedings of the International Conference on Computer Aided Verification (CAV2004). Boston, USA, 2004; 465-486.
  • 9Podelski A, Rybalchenko A. Transition invariants//Pro- ceedings of the 19th Annual IEEE Symposium on Logic in Computer Science. Turku, Finland, 2004:32-41.
  • 10Podelski A, Rybalchenko A. Transition predicate abstraction and fair termination//Proceedings of the 32nd ACM SIGP- LAN-SIGACT Symposium on Principles of Programming Languages. California, USA, 2005: 132- 144.

二级参考文献50

  • 1Zhang Jian, Wang Xiao-Xu. A constraint solver and its application to path feasibility analysis. International Journal of Software Engineer and Knowledge Engineer, 2001, 11 (2) : 139-156.
  • 2Beizer B. Software Testing Techniques. New York, NY, USA: John Wiley & Sons, Inc. , 1989.
  • 3Zhang Jian. Symbolic execution of program paths involving pointer and structure variables//Proceedings of the 4th International Conference on Quality Software (QSIC2004). IEEE Computer Society, Braunschweig, Germany, 2004:87-92.
  • 4Ruan Hui, Zhang Jian, Yan Jun. Test data generation for C programs with string-handling functions//Proceedings of the 2nd IEEE/IFIP International Symposium on Theoretical Aspects of Software Engineering (TASE2008). Nanjing, China: IEEE Computer Society, 2008:219-226.
  • 5Velroyen H. Automatic non-termination analysis of imperative programs [M. S. dissertation]. Chalmers University of Technology, Goteborg, 2007.
  • 6Bradley A, Manna Z, Sipma H. Linear ranking with reachability//Proceedings of the 17th International Conference on Computer Aided Verification (CAV 2005). Edinburgh, Scot land, UK, 2005:491-504.
  • 7Bradley A, Manna Z, Sipma H. The polyranking principle// Proceedings of 32nd International Colloquium on Automata, Language and Programming (ICALP 2005). Lisbon, Portugal, 2005:1349-1361.
  • 8Yang Lu, Zhan Naijun, Xia Bican, Zhou Chaochen. Program verification by using DISCOVERER//Proceedings of the first International Conference on Verified Software: Theories, Tools, Experiments (VSTTE 2005). Zurich, Switzerland, 2005:528-538.
  • 9Cook B, Podelski A, Rybalchenko A. Abstraction refinement for termination//Proceedings of the 12th International Symposium on Static Analysis (SAS 2005). London, UK, 2005: 87-101.
  • 10Rodriguez Carbonell E, Kapur D. Program verification using automatic generation of invariants//Proceedings of the 1st International Colloquium on Theoretical Aspects of Computing(ICTAC 2004). Guiyang, China, 2004:325-340.

共引文献13

同被引文献15

引证文献2

二级引证文献1

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部