
Denotational recurrence extraction for amortized analysis
A typical way of analyzing the time complexity of functional programs is...
read it

Recurrence Extraction for Functional Programs through CallbyPushValue (Extended Version)
The main way of analyzing the complexity of a program is that of extract...
read it

Types for Parallel Complexity in the Picalculus
Type systems as a way to control or analyze programs have been largely s...
read it

Relational Cost Analysis for FunctionalImperative Programs
Relational cost analysis aims at formally establishing bounds on the dif...
read it

CostAware Type Theory
Although computational complexity is a fundamental aspect of program beh...
read it

Reasoning about the garden of forking paths
Lazy evaluation is a powerful tool for functional programmers. It enable...
read it

A costaware logical framework
We present calf, a costaware logical framework for studying quantitativ...
read it
Denotational semantics as a foundation for cost recurrence extraction for functional languages
A standard method for analyzing the asymptotic complexity of a program is to extract a recurrence that describes its cost in terms of the size of its input, and then to compute a closedform upper bound on that recurrence. In practice there is rarely a formal argument that the recurrence is in fact an upper bound; indeed, there is usually no formal connection between the program and the recurrence at all. Here we develop a method for extracting recurrences from functional programs in a higherorder language with letpolymorphism that provably bound their operational cost. The method consists of two phases. In the first phase, a monadic translation is performed to extract a costannotated version of the original program. In the second phase, the extracted program is interpreted in a model. The key feature of this second phase is that different models describe different notions of size. This plays out specifically for values of inductive type, where different notions of size may be appropriate depending on the analysis, and for polymorphic functions, where we show that the notion of size for a polymorphic function can be described formally as the data that is common to the notions of size of its instances. We give several examples of different models that formally justify various informal extractarecurrenceandsolve cost analyses to show the applicability of our approach.
READ FULL TEXT
Comments
There are no comments yet.