Affiliation:
1. University of St Andrews, St Andrews, United Kingdom
2. Ludwig-Maximilians University, Munich, Germany
Abstract
We describe a new
automatic
static analysis for determining upper-bound functions on the use of quantitative resources for strict, higher-order, polymorphic, recursive programs dealing with possibly-aliased data. Our analysis is a variant of Tarjan's manual
amortised cost analysis
technique. We use a type-based approach, exploiting linearity to allow inference, and place a new emphasis on the number of references to a data object. The bounds we infer depend on the sizes of the various inputs to a program. They thus expose the impact of specific inputs on the overall cost behaviour.
The key novel aspect of our work is that it deals directly with polymorphic higher-order functions
without requiring source-level transformations that could alter resource usage
. We thus obtain
safe
and
accurate
compile-time bounds. Our work is
generic
in that it deals with a variety of quantitative resources. We illustrate our approach with reference to dynamic memory allocations/deallocations, stack usage, and worst-case execution time, using metrics taken from a real implementation on a simple micro-controller platform that is used in safety-critical automotive applications.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference40 articles.
1. Live heap space analysis for languages with garbage collection
2. Automated complexity analysis of Nuprl extracted programs
3. M. Berkelaar K. Eikland and P. Notebaert. lp solve: Open Source (Mixed-Integer) Linear Programming System. Published under GNU LGPL (Lesser General Public Licence). http://lpsolve.sourceforge.net/5.5. M. Berkelaar K. Eikland and P. Notebaert. lp solve: Open Source (Mixed-Integer) Linear Programming System. Published under GNU LGPL (Lesser General Public Licence). http://lpsolve.sourceforge.net/5.5.
4. A static analyzer for large safety-critical software
Cited by
16 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A separation logic for heap space under garbage collection;Proceedings of the ACM on Programming Languages;2022-01-12
2. Type-based analysis of logarithmic amortised complexity;Mathematical Structures in Computer Science;2021-10-19
3. Automatic amortized resource analysis with the Quantum physicist’s method;Proceedings of the ACM on Programming Languages;2021-08-22
4. Resource Analysis for Lazy Evaluation with Polynomial Potential;IFL 2020: Proceedings of the 32nd Symposium on Implementation and Application of Functional Languages;2020-09-02
5. Call-by-need is clairvoyant call-by-value;Proceedings of the ACM on Programming Languages;2019-07-26