Publication Details
From Shapes to Amortized Complexity
Holík Lukáš, doc. Mgr., Ph.D. (DITS FIT BUT)
Rogalewicz Adam, doc. Mgr., Ph.D. (DITS FIT BUT)
Sinn Moritz, Dr. (FHS)
Vojnar Tomáš, prof. Ing., Ph.D. (DITS FIT BUT)
Zuleger Florian, Dr. (FORSYTE)
program analysis, shape analysis, forest automata, tree automata, resource bounds analysis, amortized complexity
We propose a new method for the automated resource bound analysis
of programs manipulating dynamic data structures built on top of an underlying shape and resource bound analysis. Our approach first constructs an integer abstraction for the input program using information gathered by a shape analyser; then a resource bound analyzer is run on the resulting integer program. The integer abstraction is based on shape norms-numerical measures on dynamic data structures (e.g., the length of a linked list). In comparison to related approaches, we consider a larger class of shape norms which we derive by a lightweight program analysis. The analysis identifies paths through the involved dynamic data structures, and filters the norms which are unlikely to be useful for the later bound analysis. We present a calculus for deriving the numeric changes of the
shape norms, thereby generating the integer program. Our calculus encapsulates the minimal information which is required from the shape analysis. We have implemented our approach on top of the Forester shape analyser and evaluated it on a number of programs manipulating various list and tree structures using the Loopus tool as the underlying bounds analyser. We report on programs with complex data structures and/or using complex algorithms that could not be analysed in a fully automated and precise way before.
@INPROCEEDINGS{FITPUB11561, author = "Tom\'{a}\v{s} Fiedor and Luk\'{a}\v{s} Hol\'{i}k and Adam Rogalewicz and Moritz Sinn and Tom\'{a}\v{s} Vojnar and Florian Zuleger", title = "From Shapes to Amortized Complexity", pages = "205--225", booktitle = "Proceedings of VMCAI'18", series = "Lecture Notes in Computer Science", journal = "Lecture Notes in Computer Science", volume = 10145, number = 10747, year = 2018, location = "Heidelberg, DE", publisher = "Springer Verlag", ISBN = "978-3-319-73720-1", ISSN = "0302-9743", doi = "10.1007/978-3-319-73721-8\_10", language = "english", url = "https://www.fit.vut.cz/research/publication/11561" }