Files in this item
Type-based cost analysis for lazy functional languages
Item metadata
dc.contributor.author | Jost, Steffen | |
dc.contributor.author | Vasconcelos, Pedro | |
dc.contributor.author | Florido, Mário | |
dc.contributor.author | Hammond, Kevin | |
dc.date.accessioned | 2018-01-07T00:31:30Z | |
dc.date.available | 2018-01-07T00:31:30Z | |
dc.date.issued | 2017-06 | |
dc.identifier | 244421291 | |
dc.identifier | 85bc16ea-6b31-4e68-936b-c63177309007 | |
dc.identifier | 85008462179 | |
dc.identifier | 000400853700004 | |
dc.identifier.citation | Jost , S , Vasconcelos , P , Florido , M & Hammond , K 2017 , ' Type-based cost analysis for lazy functional languages ' , Journal of Automated Reasoning , vol. 59 , no. 1 , pp. 87-120 . https://doi.org/10.1007/s10817-016-9398-9 | en |
dc.identifier.issn | 0168-7433 | |
dc.identifier.other | ORCID: /0000-0002-4326-4562/work/33080442 | |
dc.identifier.uri | https://hdl.handle.net/10023/12441 | |
dc.description.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 analysis for co-recursive programs (i.e. dealing with potentially infinite data structures) by tracking self-references. Combining these two approaches gives a fully automatic static analysis for both recursive and co-recursive definitions. The analysis is formally proven correct against an operational semantic that features an exchangeable parametric cost-model. An arbitrary measure can be assigned to all syntactic constructs, allowing to bound, for example, evaluation steps, applications, allocations, etc. Moreover, automatic inference only relies on first-order unification and standard linear programming solving. Our publicly available implementation demonstrates the practicability of our technique on editable non-trivial examples. | |
dc.format.extent | 34 | |
dc.format.extent | 316920 | |
dc.language.iso | eng | |
dc.relation.ispartof | Journal of Automated Reasoning | en |
dc.subject | Automated static analysis | en |
dc.subject | Lazy evaluation | en |
dc.subject | Corecursion | en |
dc.subject | Amortised analysis | en |
dc.subject | Type systems | en |
dc.subject | Functional programming | en |
dc.subject | QA75 Electronic computers. Computer science | en |
dc.subject | DAS | en |
dc.subject | BDC | en |
dc.subject.lcc | QA75 | en |
dc.title | Type-based cost analysis for lazy functional languages | en |
dc.type | Journal article | en |
dc.contributor.sponsor | EPSRC | en |
dc.contributor.sponsor | European Commission | en |
dc.contributor.institution | University of St Andrews. School of Computer Science | en |
dc.contributor.institution | University of St Andrews. Centre for Interdisciplinary Research in Computational Algebra | en |
dc.identifier.doi | 10.1007/s10817-016-9398-9 | |
dc.description.status | Peer reviewed | en |
dc.date.embargoedUntil | 2018-01-06 | |
dc.identifier.grantnumber | EP/P020631/1 | en |
dc.identifier.grantnumber | 644235 | en |
This item appears in the following Collection(s)
Items in the St Andrews Research Repository are protected by copyright, with all rights reserved, unless otherwise indicated.