Demo Data from EDBT 2026 / reviewers in the wild / expert
Jennifer Hackett
dblp:154/2281
· DBLP profile ↗
5ranked-venue papers
5as first author
0since 2021 · last 2020
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4 · 4 first-authorTheory of computation · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
1 paper |
Programming languages and type systems · 50% Program verification · 50% |
Topics — the 2 heaviest of 2, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program verification
correctness proof |
0.2 | 1 | 2015 | Programs for Cheap! · LICS 2015 |
Programming languages and type systems › control structures › recursion
recursion operators |
0.2 | 1 | 2015 | Programs for Cheap! · LICS 2015 |
Methods — techniques the papers use, named apart from their topics
type theory · 0.2performance guarantees · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Review of "Thinking with Types"* by Sandy Maguire, LeanPub, 2019
Jennifer Hackett |
J. Funct. Program. | 1 |
| 2019 | Call-by-need is clairvoyant call-by-valueabstractCall-by-need evaluation, also known as lazy evaluation, provides two key benefits: compositional programming and infinite data. The standard semantics for laziness is Launchbury’s natural semantics DBLP:conf/popl/Launchbury93, which uses a heap to memoise the results of delayed evaluations. However, the stateful nature of this heap greatly complicates reasoning about the operational behaviour of lazy programs. In this article, we propose an alternative semantics for laziness, clairvoyant evaluation , that replaces the state effect with nondeterminism, and prove this semantics equivalent in a strong sense to the standard semantics. We show how this new semantics greatly simplifies operational reasoning, admitting much simpler proofs of a number of results from the literature, and how it leads to the first denotational cost semantics for lazy evaluation. Jennifer Hackett, Graham Hutton |
Proc. ACM Program. Lang. | 1 |
| 2018 | Parametric polymorphism and operational improvementabstractParametricity, 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. Jennifer Hackett, Graham Hutton |
Proc. ACM Program. Lang. | 1 |
| 2015 | Programs for Cheap!abstractWrite down the definition of a recursion operator on a piece of paper. Tell me its type, but be careful not to let me see the operator's definition. I will tell you an optimization theorem that the operator satisfies. As an added bonus, I will also give you a proof of correctness for the optimisation, along with a formal guarantee about its effect on performance. The purpose of this paper is to explain these tricks. Jennifer Hackett, Graham Hutton |
LICS | 1 |
| 2014 | Worker/wrapper/makes it/fasterabstractMuch research in program optimization has focused on formal approaches to correctness: proving that the meaning of programs is preserved by the optimisation. Paradoxically, there has been comparatively little work on formal approaches to efficiency: proving that the performance of optimized programs is actually improved. This paper addresses this problem for a general-purpose optimization technique, the worker/wrapper transformation. In particular, we use the call-by-need variant of improvement theory to establish conditions under which the worker/wrapper transformation is formally guaranteed to preserve or improve the time performance of programs in lazy languages such as Haskell. Jennifer Hackett, Graham Hutton |
ICFP | 1 |