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
Foundations of programming languages
Foundations of programming languages
Theories of programming languages
Theories of programming languages
Communications of the ACM
Communications of the ACM
Call-by-Push-Value: A Subsuming Paradigm
TLCA '99 Proceedings of the 4th International Conference on Typed Lambda Calculi and Applications
Automated higher-order complexity analysis
Theoretical Computer Science - Implicit computational complexity
Lightweight semiformal time complexity analysis for purely functional data structures
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A denotational approach to measuring complexity in functional programs
A denotational approach to measuring complexity in functional programs
Coinductive big-step operational semantics
Information and Computation
Two Algorithms in Search of a Type-System
Theory of Computing Systems - Special Issue: Computation and Logic in the Real World; Guest Editors: S. Barry Cooper, Elvira Mayordomo and Andrea Sorbi
Some Domain Theory and Denotational Semantics in Coq
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Static determination of quantitative resource usage for higher-order programs
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Cost analysis of java bytecode
ESOP'07 Proceedings of the 16th European conference on Programming
Program verification through characteristic formulae
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Closed-Form Upper Bounds in Static Cost Analysis
Journal of Automated Reasoning
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Hi-index | 0.00 |
We develop a static complexity analysis for a higher-order functional language with structural list recursion. The complexity of an expression is a pair consisting of a cost and a potential. The former is defined to be the size of the expression's evaluation derivation in a standard big-step operational semantics. The latter is a measure of the "future" cost of using the value of that expression. A translation function {.} maps target expressions to complexities. Our main result is the following Soundness Theorem: If {t} is a term in the target language, then the cost component of {t} is an upper bound on the cost of evaluating t. The proof of the Soundness Theorem is formalized in Coq, providing certified upper bounds on the cost of any expression in the target language.