Go to page

Bibliographic Metadata

From Shapes to Amortized Complexity
AuthorFiedor, Tomáš ; Holík, Lukáš ; Rogalewicz, Adam ; Sinn, Moritz ; Vojnar, Tomáš ; Zuleger, Florian
Published in
Verification, Model Checking, and Abstract Interpretation - 19th International , VMCAI 2018, Los Angeles, CA, USA, January 7-9, Proceedings : Dillig, Isil; Palsberg, Jens, Los Angeles, 2018, page 205-225
SeriesLecture Notes in Computer Science ; 10747
Document typeArticle in a collected edition
Project-/ReportnumberAustrian Science Fund (FWF): Austrian National Research Network S11403-N23 (RiSE)
Project-/ReportnumberCzech Science Foundation: 17-12465S
Project-/ReportnumberBUT FIT project FIT-S-17-4014
Project-/ReportnumberIT4Innovations Excellence in Science (IT4IXS): LQ1602
URNurn:nbn:at:at-ubtuw:3-3626 Persistent Identifier (URN)
 The work is publicly available
From Shapes to Amortized Complexity [0.41 mb]
Abstract (English)

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.

The PDF-Document has been downloaded 13 times.