Complexity analysis offers assurance of program's runtime behavior, but large classes of programs remain unanalyzable by existing automated techniques.The mwp-flow analysis sidesteps many difficulties shared by existing approaches, and offers interesting features, such as compositionality, multivariate bounds, and applicability to non-terminating programs.It analyzes resource usage and determines if a program's variables growth rates are no more than polynomially related to their inputs sizes.This sound calculus, however, is computationally expensive to manipulate, and provides no feedback if the program does not have polynomial bounds.Those two defaults were addressed in a previous work, and prepared for the tool we present here: pymwp, a static complexity analyzer for C programs based on our improved mwp-flow analysis.
翻译:复杂度分析提供了程序运行时行为的保证,但是现有自动化技术难以分析大量类别的程序。mwp-flow分析避免了现有方法的许多困难,并提供了有趣的特性,例如部分性、多变量界限和适用于非终止程序。这种分析分析资源使用情况,并确定程序的变量的增长率是否不超过它们的输入大小的多项式关系。然而,这个可靠的理论在操作上非常昂贵,并且如果程序没有多项式边界,则不会提供反馈。在先前的工作中解决了这两个缺点,并为我们展示的工具打下了基础:pymwp,一个基于改进的mwp-flow分析的C程序静态复杂度分析器。