Modeling the semantics of programming languages like C for the automated termination analysis of programs is a challenge if complete coverage of all language features should be achieved. On the other hand, low-level intermediate languages that occur during the compilation of C programs to machine code have a much simpler semantics since most of the intricacies of C are taken care of by the compiler frontend. It is thus a promising approach to use these intermediate languages for the automated termination analysis of C programs. In this paper we present the tool KITTeL based on this approach. For this, programs in the compiler intermediate language are translated into term rewrite systems (TRSs), and the termination proof itself is then performed on the automatically generated TRS. An evaluation on a large collection of C programs shows the effectiveness and practicality of KITTeL on "typical" examples.
@InProceedings{falke_et_al:LIPIcs.RTA.2011.41, author = {Falke, Stephan and Kapur, Deepak and Sinz, Carsten}, title = {{Termination Analysis of C Programs Using Compiler Intermediate Languages}}, booktitle = {22nd International Conference on Rewriting Techniques and Applications (RTA'11)}, pages = {41--50}, series = {Leibniz International Proceedings in Informatics (LIPIcs)}, ISBN = {978-3-939897-30-9}, ISSN = {1868-8969}, year = {2011}, volume = {10}, editor = {Schmidt-Schauss, Manfred}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.RTA.2011.41}, URN = {urn:nbn:de:0030-drops-31232}, doi = {10.4230/LIPIcs.RTA.2011.41}, annote = {Keywords: termination analysis; C programs; compiler intermediate languages} }
Feedback for Dagstuhl Publishing