Abstract
Research on program termination has a long tradition. However, most of the existing techniques target a single program only. We propose in this paper an incremental termination analysis approach by reusing certified modules across different program versions. A transformation-based procedure is further developed to increase the reusability of certified modules. The proposed approach has wide applicability, applicable to various program changes. The proposed technique, to the best of our knowledge, represents a novel attempt to the termination analysis of evolving programs. We implemented the approach on top of Ultimate Automizer. Experimental results show dramatic improvement of our approach over the state-of-the-art tool.
Supplemental Material
- Leonardo Alt, Sepideh Asadi, Hana Chockler, Karine Even Mendoza, Grigory Fedyukovich, Antti E. J. Hyvärinen, and Natasha Sharygina. 2017. HiFrog: SMT-based Function Summarization for Software Verification. In Tools and Algorithms for the Construction and Analysis of Systems, Axel Legay and Tiziana Margaria (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 207-213. https://doi.org/10.1007/978-3-662-54580-5_12 Google Scholar
Digital Library
- Andrea Aquino, Francesco A. Bianchi, Meixian Chen, Giovanni Denaro, and Mauro Pezzè. 2015. Reusing Constraint Proofs in Program Analysis. In Proceedings of the 2015 International Symposium on Software Testing and Analysis (Baltimore, MD, USA) ( ISSTA 2015 ). Association for Computing Machinery, New York, NY, USA, 305-315. https: //doi.org/10.1145/2771783.2771802 Google Scholar
Digital Library
- John Backes, Suzette Person, Neha Rungta, and Oksana Tkachuk. 2013. Regression Verification Using Impact Summaries. In Model Checking Software, Ezio Bartocci and C. R. Ramakrishnan (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 99-116. https://doi.org/10.1007/978-3-642-39176-7_7 Google Scholar
Cross Ref
- Roberto Bagnara, Fred Mesnard, Andrea Pescetti, and Enea Zafanella. 2012. A new look at the automatic synthesis of linear ranking functions. Information and Computation 215 ( 2012 ), 47-67. https://doi.org/10.1016/j.ic. 2012. 03.003 Google Scholar
Digital Library
- Alexey Bakhirkin and Nir Piterman. 2016. Finding Recurrent Sets with Backward Analysis and Trace Partitioning. In Tools and Algorithms for the Construction and Analysis of Systems, Marsha Chechik and Jean-François Raskin (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 17-35. https://doi.org/10.1007/978-3-662-49674-9_2 Google Scholar
Digital Library
- Amir M. Ben-Amram and Samir Genaim. 2013. On the Linear Ranking Problem for Integer Linear-Constraint Loops. In Proceedings of the 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Rome, Italy) (POPL '13). Association for Computing Machinery, New York, NY, USA, 51-62. https://doi.org/10.1145/2429069.2429078 Google Scholar
Digital Library
- Amir M. Ben-Amram and Samir Genaim. 2014. Ranking Functions for Linear-Constraint Loops. J. ACM 61, 4, Article 26 ( July 2014 ), 55 pages. https://doi.org/10.1145/2629488 Google Scholar
Digital Library
- Amir M. Ben-Amram and Samir Genaim. 2015. Complexity of Bradley-Manna-Sipma Lexicographic Ranking Functions. In Computer Aided Verification, Daniel Kroening and Corina S. Păsăreanu (Eds.). Springer International Publishing, Cham, 304-321. https://doi.org/10.1007/978-3-319-21668-3_18 Google Scholar
Cross Ref
- Amir M. Ben-Amram and Samir Genaim. 2017. On Multiphase-Linear Ranking Functions. In Computer Aided Verification, Rupak Majumdar and Viktor Kunčak (Eds.). Springer International Publishing, Cham, 601-620. https://doi.org/10.1007/ 978-3-319-63390-9_32 Google Scholar
Cross Ref
- Dirk Beyer, Thomas A Henzinger, M Erkan Keremoglu, and Philipp Wendler. 2012. Conditional model checking: a technique to pass information between verifiers. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering (Austin, TX, USA). ACM, 57.Google Scholar
Digital Library
- Dirk Beyer, Stefan Löwe, Evgeny Novikov, Andreas Stahlbauer, and Philipp Wendler. 2013. Precision Reuse for Eficient Regression Verification. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering (Saint Petersburg, Russia) (ESEC/FSE 2013 ). Association for Computing Machinery, New York, NY, USA, 389-399. https: //doi.org/10.1145/2491411.2491429 Google Scholar
Digital Library
- Marcel Böhme, Bruno C d S Oliveira, and Abhik Roychoudhury. 2013. Partition-based regression verification. In Proceedings of the 2013 International Conference on Software Engineering (San Francisco, CA, USA). IEEE Press, 302-311. https: //doi.org/10.1109/ICSE. 2013.6606576 Google Scholar
Cross Ref
- Cristina Borralleras, Marc Brockschmidt, Daniel Larraz, Albert Oliveras, Enric Rodríguez-Carbonell, and Albert Rubio. 2017. Proving Termination Through Conditional Termination. In Tools and Algorithms for the Construction and Analysis of Systems, Axel Legay and Tiziana Margaria (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 99-117. https: //doi.org/10.1007/978-3-662-54577-5_6 Google Scholar
Digital Library
- Aaron R Bradley and Zohar Manna. 2007. The calculus of computation: decision procedures with applications to verification. Springer Science & Business Media.Google Scholar
Digital Library
- Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. 2005a. Linear Ranking with Reachability. In Computer Aided Verification, Kousha Etessami and Sriram K. Rajamani (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 491-504. https://doi.org/10.1007/11513988_48 Google Scholar
Digital Library
- Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. 2005b. Termination Analysis of Integer Linear Loops. In CONCUR 2005-Concurrency Theory, Martín Abadi and Luca de Alfaro (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 488-502. https://doi.org/10.1007/11539452_37 Google Scholar
Digital Library
- Marc Brockschmidt, Byron Cook, and Carsten Fuhs. 2013. Better Termination Proving through Cooperation. In Computer Aided Verification, Natasha Sharygina and Helmut Veith (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 413-429. https://doi.org/10.1007/978-3-642-39799-8_28 Google Scholar
Cross Ref
- Marc Brockschmidt, Thomas Ströder, Carsten Otto, and Jürgen Giesl. 2012. Automated Detection of Non-termination and NullPointerExceptions for Java Bytecode. In Formal Verification of Object-Oriented Software, Bernhard Beckert, Ferruccio Damiani, and Dilian Gurov (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 123-141. https://doi.org/10.1007/978-3-642-31762-0_9 Google Scholar
Digital Library
- Sagar Chaki, Arie Gurfinkel, and Ofer Strichman. 2012. Regression Verification for Multi-threaded Programs. In Verification, Model Checking, and Abstract Interpretation, Viktor Kuncak and Andrey Rybalchenko (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 119-135. https://doi.org/10.1007/978-3-642-27940-9_9 Google Scholar
Digital Library
- Hong-Yi Chen, Byron Cook, Carsten Fuhs, Kaustubh Nimkar, and Peter O'Hearn. 2014. Proving Nontermination via Safety. In Tools and Algorithms for the Construction and Analysis of Systems, Erika Ábrahám and Klaus Havelund (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 156-171. https://doi.org/10.1007/978-3-642-54862-8_11 Google Scholar
Cross Ref
- Michael A. Colóon and Henny B. Sipma. 2001. Synthesis of Linear Ranking Functions. In Tools and Algorithms for the Construction and Analysis of Systems, Tiziana Margaria and Wang Yi (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 67-81. https://doi.org/10.1007/3-540-45319-9_6 Google Scholar
Cross Ref
- Christopher L. Conway, Kedar S. Namjoshi, Dennis Dams, and Stephen A. Edwards. 2005. Incremental Algorithms for Inter-procedural Analysis of Safety Properties. In Computer Aided Verification, Kousha Etessami and Sriram K. Rajamani (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 449-461. https://doi.org/10.1007/11513988_45 Google Scholar
Digital Library
- Byron Cook, Carsten Fuhs, Kaustubh Nimkar, and Peter O'Hearn. 2014. Disproving termination with overapproximation. In 2014 Formal Methods in Computer-Aided Design (FMCAD). IEEE, 67-74. https://doi.org/10.1109/FMCAD. 2014.6987597 Google Scholar
Cross Ref
- Byron Cook, Daniel Kroening, Philipp Rümmer, and Christoph M. Wintersteiger. 2010. Ranking Function Synthesis for Bit-Vector Relations. In Tools and Algorithms for the Construction and Analysis of Systems, Javier Esparza and Rupak Majumdar (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 236-250. https://doi.org/10.1007/978-3-642-12002-2_19 Google Scholar
Digital Library
- Byron Cook, Andreas Podelski, and Andrey Rybalchenko. 2006a. Termination Proofs for Systems Code. In Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation (Ottawa, Ontario, Canada) ( PLDI '06). Association for Computing Machinery, New York, NY, USA, 415-426. https://doi.org/10.1145/1133981.1134029 Google Scholar
Digital Library
- Byron Cook, Andreas Podelski, and Andrey Rybalchenko. 2006b. Terminator: Beyond Safety. In Computer Aided Verification, Thomas Ball and Robert B. Jones (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 415-418. https://doi.org/10. 1007/11817963_37 Google Scholar
Digital Library
- Byron Cook, Abigail See, and Florian Zuleger. 2013. Ramsey vs. Lexicographic Termination Proving. In Tools and Algorithms for the Construction and Analysis of Systems, Nir Piterman and Scott A. Smolka (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 47-61. https://doi.org/10.1007/978-3-642-36742-7_4 Google Scholar
Digital Library
- Pascal Cuoq, Florent Kirchner, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles, and Boris Yakobowski. 2012. Frama-C. In Software Engineering and Formal Methods, George Eleftherakis, Mike Hinchey, and Mike Holcombe (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 233-247. https://doi.org/10.1007/978-3-642-33826-7_16 Google Scholar
Digital Library
- Grigory Fedyukovich, Arie Gurfinkel, and Natasha Sharygina. 2016. Property Directed Equivalence via Abstract Simulation. In Computer Aided Verification, Swarat Chaudhuri and Azadeh Farzan (Eds.). Springer International Publishing, Cham, 433-453. https://doi.org/10.1007/978-3-319-41540-6_24 Google Scholar
Cross Ref
- Grigory Fedyukovich, Ondrej Sery, and Natasha Sharygina. 2013. eVolCheck: Incremental Upgrade Checker for C. In Tools and Algorithms for the Construction and Analysis of Systems, Nir Piterman and Scott A. Smolka (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 292-307. https://doi.org/10.1007/978-3-642-36742-7_21 Google Scholar
Digital Library
- Dennis Felsing, Sarah Grebing, Vladimir Klebanov, Philipp Rümmer, and Mattias Ulbrich. 2014. Automating Regression Verification. In Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering (Vasteras, Sweden) (ASE '14). Association for Computing Machinery, New York, NY, USA, 349-360. https://doi.org/10.1145/2642937. 2642987 Google Scholar
Digital Library
- Benny Godlin and Ofer Strichman. 2009. Regression Verification. In Proceedings of the 46th Annual Design Automation Conference (San Francisco, California) ( DAC '09). Association for Computing Machinery, New York, NY, USA, 466-471. https://doi.org/10.1145/1629911.1630034 Google Scholar
Digital Library
- Sumit Gulwani, Krishna K. Mehra, and Trishul Chilimbi. 2009. SPEED: Precise and Eficient Static Estimation of Program Computational Complexity. In Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Savannah, GA, USA) ( POPL '09). Association for Computing Machinery, New York, NY, USA, 127-139. https://doi.org/10.1145/1480881.1480898 Google Scholar
Digital Library
- Sumit Gulwani, Saurabh Srivastava, and Ramarathnam Venkatesan. 2008. Program Analysis as Constraint Solving. In Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation (Tucson, AZ, USA) ( PLDI '08). Association for Computing Machinery, New York, NY, USA, 281-292. https://doi.org/10.1145/1375581.1375616 Google Scholar
Digital Library
- Ashutosh Gupta, Thomas A. Henzinger, Rupak Majumdar, Andrey Rybalchenko, and Ru-Gang Xu. 2008. Proving NonTermination. In Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (San Francisco, California, USA) ( POPL '08). Association for Computing Machinery, New York, NY, USA, 147-158. https://doi.org/10.1145/1328438.1328459 Google Scholar
Digital Library
- William R. Harris, Akash Lal, Aditya V. Nori, and Sriram K. Rajamani. 2010. Alternation for Termination. In Static Analysis, Radhia Cousot and Matthieu Martel (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 304-319. https: //doi.org/10.1007/978-3-642-15769-1_19 Google Scholar
Cross Ref
- Fei He, Shu Mao, and Bow-Yaw Wang. 2016. Learning-Based Assume-Guarantee Regression Verification. In Computer Aided Verification, Swarat Chaudhuri and Azadeh Farzan (Eds.). Springer International Publishing, Cham, 310-328. https://doi.org/10.1007/978-3-319-41528-4_17 Google Scholar
Cross Ref
- Matthias Heizmann, Jochen Hoenicke, Jan Leike, and Andreas Podelski. 2013b. Linear Ranking for Linear Lasso Programs. In Automated Technology for Verification and Analysis, Dang Van Hung and Mizuhito Ogawa (Eds.). Springer International Publishing, Cham, 365-380. https://doi.org/10.1007/978-3-319-02444-8_26 Google Scholar
Cross Ref
- Matthias Heizmann, Jochen Hoenicke, and Andreas Podelski. 2013a. Software Model Checking for People Who Love Automata. In Computer Aided Verification, Natasha Sharygina and Helmut Veith (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 36-52. https://doi.org/10.1007/978-3-642-39799-8_2 Google Scholar
Cross Ref
- Matthias Heizmann, Jochen Hoenicke, and Andreas Podelski. 2014. Termination Analysis by Learning Terminating Programs. In Computer Aided Verification, Armin Biere and Roderick Bloem (Eds.). Springer International Publishing, Cham, 797-813. https://doi.org/10.1007/978-3-319-08867-9_53 Google Scholar
Digital Library
- Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar, and Marco A. A. Sanvido. 2003. Extreme Model Checking. Springer Berlin Heidelberg, Berlin, Heidelberg, 332-358. https://doi.org/10.1007/978-3-540-39910-0_16 Google Scholar
Cross Ref
- Xiangyang Jia, Carlo Ghezzi, and Shi Ying. 2015. Enhancing Reuse of Constraint Solutions to Improve Symbolic Execution. In Proceedings of the 2015 International Symposium on Software Testing and Analysis (Baltimore, MD, USA) ( ISSTA 2015 ). Association for Computing Machinery, New York, NY, USA, 177-187. https://doi.org/10.1145/2771783.2771806 Google Scholar
Digital Library
- Daniel Kroening, Natasha Sharygina, Stefano Tonetta, Aliaksei Tsitovich, and Christoph M. Wintersteiger. 2008. Loop Summarization Using Abstract Transformers. In Automated Technology for Verification and Analysis, Sungdeok (Steve) Cha, Jin-Young Choi, Moonzoo Kim, Insup Lee, and Mahesh Viswanathan (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 111-125. https://doi.org/10.1007/978-3-540-88387-6_10 Google Scholar
Digital Library
- Daniel Kroening, Natasha Sharygina, Aliaksei Tsitovich, and Christoph M. Wintersteiger. 2010. Termination Analysis with Compositional Transition Invariants. In Computer Aided Verification, Tayssir Touili, Byron Cook, and Paul Jackson (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 89-103. https://doi.org/10.1007/978-3-642-14295-6_9 Google Scholar
Digital Library
- D. Larraz, A. Oliveras, E. Rodríguez-Carbonell, and A. Rubio. 2013. Proving termination of imperative programs using Max-SMT. In 2013 Formal Methods in Computer-Aided Design (Portland, OR, USA). IEEE, 218-225. https://doi.org/10. 1109/FMCAD. 2013.6679413 Google Scholar
Cross Ref
- Steven Lauterburg, Ahmed Sobeih, Darko Marinov, and Mahesh Viswanathan. 2008. Incremental state-space exploration for programs with dynamically allocated data. In Proceedings of the 30th international conference on Software engineering (Leipzig, Germany). ACM, 291-300. https://doi.org/10.1145/1368088.1368128 Google Scholar
Digital Library
- Ton Chanh Le, Shengchao Qin, and Wei-Ngan Chin. 2015. Termination and Non-Termination Specification Inference. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (Portland, OR, USA) ( PLDI '15). Association for Computing Machinery, New York, NY, USA, 489-498. https://doi.org/10.1145/2737924. 2737993 Google Scholar
Digital Library
- Jan Leike and Matthias Heizmann. 2014. Ranking Templates for Linear Loops. In Tools and Algorithms for the Construction and Analysis of Systems, Erika Ábrahám and Klaus Havelund (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 172-186. https://doi.org/10.1007/978-3-642-54862-8_12 Google Scholar
Cross Ref
- Jan Leike and Matthias Heizmann. 2018. Geometric Nontermination Arguments. In Tools and Algorithms for the Construction and Analysis of Systems, Dirk Beyer and Marieke Huisman (Eds.). Springer International Publishing, Cham, 266-283. https://doi.org/10.1007/978-3-319-89963-3_16 Google Scholar
Cross Ref
- Federico Mora, Yi Li, Julia Rubin, and Marsha Chechik. 2018. Client-specific equivalence checking. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (Montpellier, France, France). ACM, 441-451. https://doi.org/10.1145/3238147.3238178 Google Scholar
Digital Library
- Aditya V. Nori and Rahul Sharma. 2013. Termination Proofs from Tests. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering (Saint Petersburg, Russia) (ESEC/FSE 2013 ). Association for Computing Machinery, New York, NY, USA, 246-256. https://doi.org/10.1145/2491411.2491413 Google Scholar
Digital Library
- Fabrizio Pastore, Leonardo Mariani, Antti E. J. Hyvärinen, Grigory Fedyukovich, Natasha Sharygina, Stephan Sehestedt, and Ali Muhammad. 2014. Verification-Aided Regression Testing. In Proceedings of the 2014 International Symposium on Software Testing and Analysis (San Jose, CA, USA) ( ISSTA 2014 ). Association for Computing Machinery, New York, NY, USA, 37-48. https://doi.org/10.1145/2610384.2610387 Google Scholar
Digital Library
- Andreas Podelski and Andrey Rybalchenko. 2004. A Complete Method for the Synthesis of Linear Ranking Functions. In Verification, Model Checking, and Abstract Interpretation, Bernhard Stefen and Giorgio Levi (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 239-251. https://doi.org/10.1007/978-3-540-24622-0_20 Google Scholar
- A. Podelski and A. Rybalchenko. 2004. Transition invariants. In Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science, 2004. (Turku, Finland, Finland). IEEE, 32-41. https://doi.org/10.1109/LICS. 2004.1319598 Google Scholar
Cross Ref
- Andreas Podelski and Andrey Rybalchenko. 2005. Transition Predicate Abstraction and Fair Termination. In Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Long Beach, California, USA) ( POPL '05). Association for Computing Machinery, New York, NY, USA, 132-144. https://doi.org/10.1145/1040305.1040317 Google Scholar
Digital Library
- Andreas Podelski and Andrey Rybalchenko. 2011. Transition Invariants and Transition Predicate Abstraction for Program Termination. In Tools and Algorithms for the Construction and Analysis of Systems, Parosh Aziz Abdulla and K. Rustan M. Leino (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 3-10. https://doi.org/10.1007/978-3-642-19835-9_2 Google Scholar
Cross Ref
- Bat-Chen Rothenberg, Daniel Dietsch, and Matthias Heizmann. 2018. Incremental Verification Using Trace Abstraction. In Static Analysis, Andreas Podelski (Ed.). Springer International Publishing, Cham, 364-382. https://doi.org/10.1007/978-3-319-99725-4_22 Google Scholar
Cross Ref
- Neha Rungta, Suzette Person, and Joshua Branchaud. 2012. A change impact analysis to characterize evolving program behaviors. In 2012 28th IEEE International Conference on Software Maintenance ( ICSM) (Trento, Italy). IEEE, 109-118. https://doi.org/10.1109/ICSM. 2012.6405261 Google Scholar
Digital Library
- Ondrej Sery, Grigory Fedyukovich, and Natasha Sharygina. 2012. Incremental upgrade checking by means of interpolationbased function summaries. In Formal Methods in Computer-Aided Design (FMCAD), 2012 (Cambridge, UK). IEEE, 114-121.Google Scholar
- Thomas Ströder, Jürgen Giesl, Marc Brockschmidt, Florian Frohn, Carsten Fuhs, Jera Hensel, Peter Schneider-Kamp, and Cornelius Aschermann. 2017. Automatically proving termination and memory safety for programs with pointer arithmetic. Journal of Automated Reasoning 58, 1 ( 2017 ), 33-65. https://doi.org/10.1007/s10817-016-9389-x Google Scholar
Digital Library
- Anna Trostanetski, Orna Grumberg, and Daniel Kroening. 2017. Modular Demand-Driven Analysis of Semantic Diference for Program Versions. In Static Analysis, Francesco Ranzato (Ed.). Springer International Publishing, Cham, 405-427. https://doi.org/10.1007/978-3-319-66706-5_20 Google Scholar
Cross Ref
- Caterina Urban, Arie Gurfinkel, and Temesghen Kahsai. 2016. Synthesizing Ranking Functions from Bits and Pieces. In Tools and Algorithms for the Construction and Analysis of Systems, Marsha Chechik and Jean-François Raskin (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 54-70. https://doi.org/10.1007/978-3-662-49674-9_4 Google Scholar
Digital Library
- Helga Velroyen and Philipp Rümmer. 2008. Non-termination Checking for Imperative Programs. In Tests and Proofs, Bernhard Beckert and Reiner Hähnle (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 154-170. https://doi.org/10.1007/978-3-540-79124-9_11 Google Scholar
Cross Ref
- Willem Visser, Jaco Geldenhuys, and Matthew B. Dwyer. 2012. Green: Reducing, Reusing and Recycling Constraints in Program Analysis. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering (Cary, North Carolina) (FSE '12). Association for Computing Machinery, New York, NY, USA, Article 58, 11 pages. https://doi.org/10.1145/2393596.2393665 Google Scholar
Digital Library
- Guowei Yang, Matthew B Dwyer, and Gregg Rothermel. 2009. Regression model checking. In Software Maintenance, 2009. ICSM 2009. IEEE International Conference on (Edmonton, AB, Canada). IEEE, 115-124. https://doi.org/10.1109/ICSM. 2009. 5306334 Google Scholar
Cross Ref
- Guowei Yang, Sarfraz Khurshid, Suzette Person, and Neha Rungta. 2014. Property Diferencing for Incremental Checking. In Proceedings of the 36th International Conference on Software Engineering (Hyderabad, India) (ICSE 2014 ). Association for Computing Machinery, New York, NY, USA, 1059-1070. https://doi.org/10.1145/2568225.2568319 Google Scholar
Digital Library
Index Terms
Termination analysis for evolving programs: an incremental approach by reusing certified modules
Recommendations
Ranking functions for size-change termination
This article explains how to construct a ranking function for any program that is proved terminating by size-change analysis.
The “principle of size-change termination” for a first-order functional language with well-ordered data is intuitive: A program ...
Reviser: efficiently updating IDE-/IFDS-based data-flow analyses in response to incremental program changes
ICSE 2014: Proceedings of the 36th International Conference on Software EngineeringMost application code evolves incrementally, and especially so when being maintained after the applications have been deployed. Yet, most data-flow analyses do not take advantage of this fact. Instead they require clients to recompute the entire ...
Termination prediction for general logic programs
We present a heuristic framework for attacking the undecidable termination problem of logic programs, as an alternative to current termination/nontermination proof approaches. We introduce an idea of termination prediction, which predicts termination of ...






Comments