Show simple item record

Files in this item

Thumbnail

Item metadata

dc.contributor.authorJost, Steffen
dc.contributor.authorVasconcelos, Pedro
dc.contributor.authorFlorido, Mário
dc.contributor.authorHammond, Kevin
dc.date.accessioned2018-01-07T00:31:30Z
dc.date.available2018-01-07T00:31:30Z
dc.date.issued2017-06
dc.identifier244421291
dc.identifier85bc16ea-6b31-4e68-936b-c63177309007
dc.identifier85008462179
dc.identifier000400853700004
dc.identifier.citationJost , 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-9en
dc.identifier.issn0168-7433
dc.identifier.otherORCID: /0000-0002-4326-4562/work/33080442
dc.identifier.urihttps://hdl.handle.net/10023/12441
dc.description.abstractWe 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.extent34
dc.format.extent316920
dc.language.isoeng
dc.relation.ispartofJournal of Automated Reasoningen
dc.subjectAutomated static analysisen
dc.subjectLazy evaluationen
dc.subjectCorecursionen
dc.subjectAmortised analysisen
dc.subjectType systemsen
dc.subjectFunctional programmingen
dc.subjectQA75 Electronic computers. Computer scienceen
dc.subjectDASen
dc.subjectBDCen
dc.subject.lccQA75en
dc.titleType-based cost analysis for lazy functional languagesen
dc.typeJournal articleen
dc.contributor.sponsorEPSRCen
dc.contributor.sponsorEuropean Commissionen
dc.contributor.institutionUniversity of St Andrews. School of Computer Scienceen
dc.contributor.institutionUniversity of St Andrews. Centre for Interdisciplinary Research in Computational Algebraen
dc.identifier.doi10.1007/s10817-016-9398-9
dc.description.statusPeer revieweden
dc.date.embargoedUntil2018-01-06
dc.identifier.grantnumberEP/P020631/1en
dc.identifier.grantnumber644235en


This item appears in the following Collection(s)

Show simple item record