Jennifer Hackett
Parametric polymorphism and operational improvement
Hackett, Jennifer; Hutton, Graham
Abstract
Parametricity, in both operational and denotational forms, has long been a useful tool for reasoning about program correctness. However, there is as yet no comparable technique for reasoning about program improvement, that is, when one program uses fewer resources than another. Existing theories of parametricity cannot be used to address this problem as they are agnostic with regard to resource usage. This article addresses this problem by presenting a new operational theory of parametricity that is sensitive to time costs, which can be used to reason about time improvement properties. We demonstrate the applicability of our theory by showing how it can be used to prove that a number of well-known program fusion techniques are time improvements, including fixed point fusion, map fusion and short cut fusion.
Citation
Hackett, J., & Hutton, G. (2018). Parametric polymorphism and operational improvement. Proceedings of the ACM on Programming Languages, 2(ICFP), 1-24. https://doi.org/10.1145/3236763
Journal Article Type | Article |
---|---|
Acceptance Date | Jul 6, 2018 |
Online Publication Date | Sep 1, 2018 |
Publication Date | Sep 1, 2018 |
Deposit Date | Jul 11, 2018 |
Publicly Available Date | Sep 1, 2018 |
Journal | Proceedings of the ACM on Programming Languages |
Electronic ISSN | 2475-1421 |
Peer Reviewed | Peer Reviewed |
Volume | 2 |
Issue | ICFP |
Article Number | 68 |
Pages | 1-24 |
DOI | https://doi.org/10.1145/3236763 |
Keywords | Safety, Risk, Reliability and Quality; Software |
Public URL | https://nottingham-repository.worktribe.com/output/945535 |
Publisher URL | https://dl.acm.org/citation.cfm?id=3236763 |
Related Public URLs | http://www.cs.nott.ac.uk/~pszgmh/ppoi.pdf |
Additional Information | Conference dates. Sun 23 - Sat 29 September 2018 |
Contract Date | Jul 11, 2018 |
Files
ppoi.pdf
(701 Kb)
PDF
You might also like
Quotient Haskell: Lightweight Quotient Types for All
(2024)
Journal Article
Programming language semantics: It’s easy as 1,2,3
(2023)
Journal Article
Monadic compiler calculation (functional pearl)
(2022)
Journal Article
Calculating dependently-typed compilers (functional pearl)
(2021)
Journal Article
Calculating correct compilers II: Return of the register machines
(2020)
Journal Article