Hostname: page-component-74656f9884-j7cmm Total loading time: 0 Render date: 2026-11-09T21:25:35.672Z Has data issue: false hasContentIssue false

Modular, higher order cardinality analysis in theory and practice

Published online by Cambridge University Press:  16 February 2017

ILYA SERGEY
Affiliation:
University College London, London, UK (e-mail: i.sergey@ucl.ac.uk)
DIMITRIOS VYTINIOTIS
Affiliation:
Microsoft Research, Cambridge, UK (e-mail: dimitris@microsoft.com, simonpj@microsoft.com)
SIMON L. PEYTON JONES
Affiliation:
Microsoft Research, Cambridge, UK (e-mail: dimitris@microsoft.com, simonpj@microsoft.com)
JOACHIM BREITNER
Affiliation:
University of Pennsylvania, Pennsylvania, USA (e-mail: joachim@cis.upenn.edu)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Since the mid '80s, compiler writers for functional languages (especially lazy ones) have been writing papers about identifying and exploiting thunks and lambdas that are used only once. However, it has proved difficult to achieve both power and simplicity in practice. In this paper, we describe a new, modular analysis for a higher order language, which is both simple and effective. We prove the analysis sound with respect to a standard call-by-need semantics, and present measurements of its use in a full-scale, state-of-the-art optimising compiler. The analysis finds many single-entry thunks and one-shot lambdas and enables a number of program optimisations. This paper extends our preceding conference publication (Sergey et al. 2014 Proceedings of the 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2014). ACM, pp. 335–348) with proofs, expanded report on evaluation and a detailed examination of the factors causing the loss of precision in the analysis.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 2017 
Submit a response

Discussions

No Discussions have been published for this article.