2017
DOI: 10.1007/s10817-016-9398-9
|View full text |Cite
|
Sign up to set email alerts
|

Type-Based Cost Analysis for Lazy Functional Languages

Abstract: We present a static analysis for determining the execution costs of lazily evaluated functional languages, such as Haskell. Time-and space-behaviour of lazy functional languages can be hard to predict, creating a significant barrier to their broader acceptance. This paper applies a type-based analysis employing amortisation and cost effects to statically determine upper bounds on evaluation costs. While amortisation performs well with finite recursive data, we significantly improve the precision of our analysi… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
51
0

Year Published

2017
2017
2022
2022

Publication Types

Select...
8
1

Relationship

1
8

Authors

Journals

citations
Cited by 21 publications
(51 citation statements)
references
References 29 publications
(61 reference statements)
0
51
0
Order By: Relevance
“…In this paper, we have presented an automated amortized analysis on the resource usage of Haskell programs. Our work is based on a previous paper by Jost et al [9], which proposed a type-based analysis on an artificial language called JVFH. We use the plugin API of the GHC compiler to translate any given Haskell code into a heavily simplified representation called GHC Core.…”
Section: Resultsmentioning
confidence: 99%
“…In this paper, we have presented an automated amortized analysis on the resource usage of Haskell programs. Our work is based on a previous paper by Jost et al [9], which proposed a type-based analysis on an artificial language called JVFH. We use the plugin API of the GHC compiler to translate any given Haskell code into a heavily simplified representation called GHC Core.…”
Section: Resultsmentioning
confidence: 99%
“…This is achieved using a type system that generates resource-specific inequalities to be solved by a linear programming solver. The initial system [2003] supports linear bounds on monomorphic, first-order programs but this has since been generalised to incorporate polynomial bounds [Hoffmann et al 2011[Hoffmann et al , 2012, higher-order functions [Jost et al 2010], parallelism [Hoffmann and Shao 2015], and most recently, a Haskell-like lazy semantics [Jost et al 2017]. As AARA focuses on automatically inferring bounds, its analysis is often less precise than ours.…”
Section: Related Workmentioning
confidence: 99%
“…Unfortunately, however, performance bugs are as difficult to detect as they are common [Jin et al 2012]. As a result, the problem of statically analysing the resource usage, or execution cost, of programs has been subject to much research in which a broad range of techniques have been studied, including resource-aware type systems [Çiçek et al 2017;Hoffmann et al 2012;Hofmann and Jost 2003;Jost et al 2017;Wang et al 2017], program and separation logics [Aspinall et al 2007;Atkey 2010], and sized types [Vasconcelos 2008].…”
Section: Introductionmentioning
confidence: 99%
“…Our embedding of RAML in R C shows that R C is more expressive, but R C is a proof framework, not an automated system. Jost et al [2017] extend amortized analysis to lazy semantics (Haskell). They specifically focus on co-inductive definitions.…”
Section: Related Workmentioning
confidence: 99%