FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
A new recursion-theoretic characterization of the polytime functions (extended abstract)
STOC '92 Proceedings of the twenty-fourth annual ACM symposium on Theory of computing
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
On the conversion of indirect to direct recursion
ACM Letters on Programming Languages and Systems (LOPLAS)
REDLOG: computer algebra meets computer logic
ACM SIGSAM Bulletin
A note on “On the conversion of indirect to direct recursion”
ACM Transactions on Programming Languages and Systems (TOPLAS)
The size-change principle for program termination
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic time-bound analysis for a higher-order language
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
A syntactical analysis of non-size-increasing polynomial time computation
ACM Transactions on Computational Logic (TOCL)
Cost recurrences for DML programs
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Hauptvortrag: Quantifier elimination for real closed fields by cylindrical algebraic decomposition
Proceedings of the 2nd GI Conference on Automata Theory and Formal Languages
Complexity Analysis for a Lazy Higher-Order Language
ESOP '90 Proceedings of the 3rd European Symposium on Programming
Linear Types and Non Size-Increasing Polynomial Time Computation
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
Non-linear loop invariant generation using Gröbner bases
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Concepts, Techniques, and Models of Computer Programming
Concepts, Techniques, and Models of Computer Programming
POP and semantic labeling using SAT
ESSLLI'08/09 Proceedings of the 2008 international conference on Interfaces: explorations in logic, language and computation
On the limits of the classical approach to cost analysis
SAS'12 Proceedings of the 19th international conference on Static Analysis
Hi-index | 0.00 |
Affine size-change analysis has been used for termination analysis of eager functional programming languages. The same style of analysis is also capable of compactly recording and calculating other properties of programs, including their runtime, maximum stack depth, and (relative) path time costs. In this paper we show how precise (not just big- $\mathcal{O}$) polynomial bounds on such costs may be calculated on programs, by a characterization as a problem in quantifier elimination. The technique is decidable, and complete for a class of size-change terminating programs with limited-degree polynomial costs. An extension to the technique allows the calculation of some classes of exponential-cost programs. We demonstrate the new technique by recording the calculation in numbers-of-function (or procedure) calls for a simple functional definition language, but it can also be applied to imperative languages. The technique is automated within the reduce computer algebra system.