Difference Constraints: An adequate Abstraction for Complexity Analysis of Imperative Programs

FMCAD '15: Proceedings of the 15th Conference on Formal Methods in Computer-Aided Design(2015)

引用 17|浏览49
暂无评分
摘要
Difference constraints have been used for termination analysis in the literature, where they denote relational inequalities of the form x' <= y + c, and describe that the value of x in the current state is at most the value of y in the previous state plus some integer constant c. In this paper, we argue that the complexity of imperative programs typically arises from counter increments and resets, which can be modeled naturally by difference constraints. We present the first practical algorithm for the analysis of difference constraint programs and describe how C programs can be abstracted to difference constraint programs. Our approach contributes to the field of automated complexity and (resource) bound analysis by enabling automated amortized complexity analysis for a new class of programs and providing a conceptually simple program model that relates invariant- and bound analysis. We demonstrate the effectiveness of our approach through a thorough experimental comparison on real world C code: our tool Loopus computes the complexity for considerably more functions in less time than related tools from the literature.
更多
查看译文
关键词
difference constraints,imperative programs,program complexity analysis,termination analysis,counter increments,resets,C programs,amortized complexity analysis
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要