TY - GEN
T1 - pymwp
T2 - 21st International Symposium on Automated Technology for Verification and Analysis, ATVA 2023
AU - Aubert, Clément
AU - Rubiano, Thomas
AU - Rusch, Neea
AU - Seiller, Thomas
N1 - Publisher Copyright:
© 2023, The Author(s), under exclusive license to Springer Nature Switzerland AG.
PY - 2023
Y1 - 2023
N2 - We present pymwp, a static analyzer that automatically computes, if they exist, polynomial bounds relating input and output sizes. In case of exponential growth, our tool detects precisely which dependencies between variables induced it. Based on the sound mwp-flow calculus, the analysis captures bounds on large classes of programs by being non-deterministic and not requiring termination. For this reason, implementing this calculus required solving several non-trivial implementation problems, to handle its complexity and non-determinism, but also to provide meaningful feedback to the programmer. The duality of the analysis result and compositionality of the calculus make our approach original in the landscape of complexity analyzers. We conclude by demonstrating experimentally how pymwp is a practical and performant static analyzer to automatically evaluate variable growth bounds of C programs.
AB - We present pymwp, a static analyzer that automatically computes, if they exist, polynomial bounds relating input and output sizes. In case of exponential growth, our tool detects precisely which dependencies between variables induced it. Based on the sound mwp-flow calculus, the analysis captures bounds on large classes of programs by being non-deterministic and not requiring termination. For this reason, implementing this calculus required solving several non-trivial implementation problems, to handle its complexity and non-determinism, but also to provide meaningful feedback to the programmer. The duality of the analysis result and compositionality of the calculus make our approach original in the landscape of complexity analyzers. We conclude by demonstrating experimentally how pymwp is a practical and performant static analyzer to automatically evaluate variable growth bounds of C programs.
KW - Automatic Complexity Analysis
KW - Bound Inference
KW - Flow Analysis
KW - Program Verification
KW - Static Program Analysis
UR - http://www.scopus.com/inward/record.url?scp=85175962362&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85175962362&partnerID=8YFLogxK
U2 - 10.1007/978-3-031-45332-8_14
DO - 10.1007/978-3-031-45332-8_14
M3 - Conference contribution
AN - SCOPUS:85175962362
SN - 9783031453311
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 263
EP - 275
BT - Automated Technology for Verification and Analysis - 21st International Symposium, ATVA 2023, Proceedings
A2 - André, Étienne
A2 - Sun, Jun
PB - Springer Science and Business Media Deutschland GmbH
Y2 - 24 October 2023 through 27 October 2023
ER -