program containing placeholders for unspecified statements or expressions is called an abstract (or schematic) program. Placeholder symbols occur naturally in program transformation rules, as used in refactoring, compilation or optimization. Static cost analysis derives the precise cost –or upper and lower bounds for it– of executing programs, as functions in terms of the program’s input data size. We present a generalization of automated cost analysis that can handle abstract programs and, hence, can analyze the impact on the cost effect of program transformations. This kind of relational property requires provably precise cost bounds which are not always produced by cost analysis. Therefore, we certify by deductive verification that the inferred abstract cost bounds are correct and sufficiently precise. It is the first approach solving this problem. Both, abstract cost analysis and certification, are based on quantitative abstract execution (QAE) which in turn is a variation of abstract execution, a recently developed symbolic execution technique for abstract programs. To realize QAE the new concept of a cost invariant is introduced. QAE is implemented and runs fully automatically on a benchmark set consisting of representative optimization rules.
History
CISPA Affiliation
Yes
Journal
ACM Transactions on Software Engineering and Methodology
Publisher
Association for Computing Machinery (ACM)
Open Access Type
Unknown
Sub Type
Article
BibTeX
@article{Albert:Hähnle:Merayo:Steinhöfel:2024,
title = "Certified Cost Bounds for Abstract Programs",
author = "Albert, Elvira" AND "Hähnle, Reiner" AND "Merayo, Alicia" AND "Steinhöfel, Dominic",
year = 2024,
month = 11,
journal = "ACM Transactions on Software Engineering and Methodology",
publisher = "Association for Computing Machinery (ACM)",
issn = "1049-331X",
doi = "10.1145/3705298"
}