Being able to detect program runtime complexity can help identify security vulnerabilities such as DoS attacks and side-channel information leakage. In prior work, we use dynamic invariant generation to infer nonlinear numerical relations to represent runtime complexity of imperative programs. In this work, we propose a new dynamic analysis approach for learning recurrence relations to capture complexity bounds for recursive programs. This approach allows us to efficiently infer simple linear recurrence relations that represent nontrivial, potentially nonlinear, complexity bounds. Preliminary results on several popular recursive programs show that we can learn precise recurrence relations capturing worst-case complexity bounds such as O(n log n) and O(cn).
CITATION STYLE
Nguyen, T. V., Ishimwe, D., Malyshev, A., Antonopoulos, T., & Phan, Q. S. (2020). Using dynamically inferred invariants to analyze program runtime complexity. In SEAD 2020 - Proceedings of the 3rd ACM SIGSOFT International Workshop on Software Security from Design to Deployment, Co-located with ESEC/FSE 2020 (pp. 11–14). Association for Computing Machinery, Inc. https://doi.org/10.1145/3416507.3423189
Mendeley helps you to discover research relevant for your work.