Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming 2015
DOI: 10.1145/2784731.2784749
|View full text |Cite
|
Sign up to set email alerts
|

Denotational cost semantics for functional languages with inductive types

Abstract: Abstract. A central method for analyzing the asymptotic complexity of a functional program is to extract and then solve a recurrence that expresses evaluation cost in terms of input size. The relevant notion of input size is often specific to a datatype, with measures including the length of a list, the maximum element in a list, and the height of a tree. In this work, we give a formal account of the extraction of cost and size recurrences from higher-order functional programs over inductive datatypes. Our app… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
109
0

Year Published

2017
2017
2021
2021

Publication Types

Select...
5
3

Relationship

1
7

Authors

Journals

citations
Cited by 55 publications
(109 citation statements)
references
References 17 publications
0
109
0
Order By: Relevance
“…Following that, we define a map that extracts a recurrence from each term of CBV PCF, which we also denote by ∥−∥ (see Danner et al [2015] for an explanation of most of the cases). Arithmetic operations M op N are chosen to have zero cost in addition to the cost of evaluating their inputs (since for big-O bounds we mainly count recursive calls), but for their potential we distinguish some cases, guided by two constraints needed by our proof of the bounding theorem: the potential must be an upper bound on the value of the operation, and must be monotone in the potentials of the operands wherever mathematically possible Addition/multiplication are monotone in both M and N , so we use addition/multiplication to combine the potentials of M and N , which will be an upper bound on M {+, * }N .…”
Section: Call-by-valuementioning
confidence: 99%
See 1 more Smart Citation
“…Following that, we define a map that extracts a recurrence from each term of CBV PCF, which we also denote by ∥−∥ (see Danner et al [2015] for an explanation of most of the cases). Arithmetic operations M op N are chosen to have zero cost in addition to the cost of evaluating their inputs (since for big-O bounds we mainly count recursive calls), but for their potential we distinguish some cases, guided by two constraints needed by our proof of the bounding theorem: the potential must be an upper bound on the value of the operation, and must be monotone in the potentials of the operands wherever mathematically possible Addition/multiplication are monotone in both M and N , so we use addition/multiplication to combine the potentials of M and N , which will be an upper bound on M {+, * }N .…”
Section: Call-by-valuementioning
confidence: 99%
“…(1) We factor the syntactic phase into a cost-preserving embedding of the source language in an intermediate language, followed by a recurrence extraction for the intermediate language in the style of Danner et al [2015]. The bounding theorem is proved once for the intermediate language, so for each source language we need only prove that the cost-preserving embeddings are correct.…”
Section: Introductionmentioning
confidence: 99%
“…Ghica and Smith [2011] analyzed the complexity of a concurrent Algol-like language that is compiled to hardware circuits directly, by using indices in types to control contraction in parallel compositions. Danner et al [2015] proposed a procedure to automatically transform a program into a certain form and read off the complexity-recurrence equations from there, but they did not address recurrence solving. Benzinger [2001Benzinger [ , 2004 used the Mathematica computer-algebra system to solve some forms of recurrences.…”
Section: Related Workmentioning
confidence: 99%
“…A lot of work for cost analysis relies on size types [Avanzini and Dal Lago 2017;Crary and Weirich 2000;Danner et al 2015;Serrano et al 2013]. Size types only specify the sizes of data structures, so they must be combined with other techniques to reason about costs.…”
Section: Related Workmentioning
confidence: 99%
“…Size types only specify the sizes of data structures, so they must be combined with other techniques to reason about costs. One approach is to use a cost-passing encoding to make cost an explicit output and to reason about its size [Avanzini and Dal Lago 2017;Danner et al 2015]. Crary and Weirich [2000] take a different approach that resembles a type-and-effect system.…”
Section: Related Workmentioning
confidence: 99%