In earlier work, we developed a modular approach for automatic complexity analysis of integer programs. However, these integer programs do not allow non-tail recursive calls or subprocedures. In this paper, we consider integer programs with function calls and present a natural extension of our modular complexity analysis approach to the recursive setting based on a new form of ranking functions. Hence, our approach combines already existing powerful techniques on the "imperative" parts of the program and our novel ranking functions on the recursive parts. The strength of this combination is demonstrated by our implementation in the complexity analysis tool KoAT.
翻译:在先前的研究中,我们针对整数程序开发了一种模块化的自动复杂度分析方法。然而,这些整数程序不允许非尾递归调用或子过程。本文考虑包含函数调用的整数程序,并基于一种新型的秩函数,将我们的模块化复杂度分析方法自然地扩展到递归场景。因此,我们的方法结合了程序"命令式"部分已有的强大技术与递归部分的新型秩函数。我们在复杂度分析工具KoAT中实现的系统展示了这种结合的有效性。