Journal of the ACM (JACM)
ACE: an automatic complexity evaluator
ACM Transactions on Programming Languages and Systems (TOPLAS)
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Automatic average-case analysis of algorithms
Theoretical Computer Science - Theme issue on the algebraic and computing treatment of noncommutative power series
Inductive definitions, semantics and abstract interpretations
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Cost analysis of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proving the correctness of reactive systems using sized types
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Recursion and dynamic data-structures in bounded space: towards embedded ML programming
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Communications of the ACM
Cost recurrences for DML programs
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Higher-Order and Symbolic Computation
Static prediction of heap space usage for first-order functional programs
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Type System for Bounded Space and Functional In-Place Update--Extended Abstract
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Formalizing the analysis of algorithms.
Formalizing the analysis of algorithms.
Hume: a domain-specific language for real-time embedded systems
Proceedings of the 2nd international conference on Generative programming and component engineering
Automated complexity analysis of Nuprl extracted programs
Journal of Functional Programming
Automated higher-order complexity analysis
Theoretical Computer Science - Implicit computational complexity
Advanced Topics in Types and Programming Languages
Advanced Topics in Types and Programming Languages
Lightweight semiformal time complexity analysis for purely functional data structures
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The worst-case execution-time problem—overview of methods and survey of tools
ACM Transactions on Embedded Computing Systems (TECS)
Parametric prediction of heap memory requirements
Proceedings of the 7th international symposium on Memory management
Analysing memory resource bounds for low-level programs
Proceedings of the 7th international symposium on Memory management
Automatic Inference of Upper Bounds for Recurrence Relations in Cost Analysis
SAS '08 Proceedings of the 15th international symposium on Static Analysis
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Parametric Timing Analysis for Complex Architectures
RTCSA '08 Proceedings of the 2008 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications
SPEED: precise and efficient static estimation of program computational complexity
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Amortised Memory Analysis Using the Depth of Data Structures
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Control-flow refinement and progress invariants for bound analysis
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
An Efficient Algorithm for Parametric WCET Calculation
RTCSA '09 Proceedings of the 2009 15th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications
Termination and Cost Analysis with COSTA and its User Interfaces
Electronic Notes in Theoretical Computer Science (ENTCS)
"Carbon Credits" for Resource-Bounded Computations Using Amortised Analysis
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Asymptotic Resource Usage Bounds
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Static determination of quantitative resource usage for higher-order programs
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
IEEE Transactions on Very Large Scale Integration (VLSI) Systems
Cost analysis of java bytecode
ESOP'07 Proceedings of the 16th European conference on Programming
Polynomial size analysis of first-order functions
TLCA'07 Proceedings of the 8th international conference on Typed lambda calculi and applications
The reachability-bound problem
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Parametric inference of memory requirements for garbage collected languages
Proceedings of the 2010 international symposium on Memory management
Efficient type-checking for amortised heap-space analysis
CSL'09/EACSL'09 Proceedings of the 23rd CSL international conference and 18th EACSL Annual conference on Computer science logic
Multivariate amortized resource analysis
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Closed-Form Upper Bounds in Static Cost Analysis
Journal of Automated Reasoning
More precise yet widely applicable cost analysis
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
Amortized resource analysis with polymorphic recursion and partial big-step operational semantics
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Precise and efficient parametric path analysis
Proceedings of the 2011 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems
Amortised resource analysis with separation logic
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Type-Based amortised heap-space analysis
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Coinductive big-step operational semantics
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Ten years of amortized resource analysis
FOSSACS'13 Proceedings of the 16th international conference on Foundations of Software Science and Computation Structures
Hi-index | 0.00 |
We study the problem of automatically analyzing the worst-case resource usage of procedures with several arguments. Existing automatic analyses based on amortization or sized types bound the resource usage or result size of such a procedure by a sum of unary functions of the sizes of the arguments. In this article we generalize this to arbitrary multivariate polynomial functions thus allowing bounds of the form mn which had to be grossly overestimated by m2 + n2 before. Our framework even encompasses bounds like ∑i,j≤ n mi mj where the mi are the sizes of the entries of a list of length n. This allows us for the first time to derive useful resource bounds for operations on matrices that are represented as lists of lists and to considerably improve bounds on other superlinear operations on lists such as longest common subsequence and removal of duplicates from lists of lists. Furthermore, resource bounds are now closed under composition which improves accuracy of the analysis of composed programs when some or all of the components exhibit superlinear resource or size behavior. The analysis is based on a novel multivariate amortized resource analysis. We present it in form of a type system for a simple first-order functional language with lists and trees, prove soundness, and describe automatic type inference based on linear programming. We have experimentally validated the automatic analysis on a wide range of examples from functional programming with lists and trees. The obtained bounds were compared with actual resource consumption. All bounds were asymptotically tight, and the constants were close or even identical to the optimal ones.