Demo Data from EDBT 2026 / reviewers in the wild / expert
Matthew Pickering
dblp:186/0200
· DBLP profile ↗
4ranked-venue papers
1as first author
1since 2021 · last 2022
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4 · 1 first-author · 1 since 2021
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 · 100% |
Topics — the 2 heaviest of 2, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems › metaprogramming
multi-stage programming |
0.6 | 1 | 2022 | Staging with class: a specification for typed template Haskell · Proc. ACM Program. Lang. 2022 |
Programming languages and type systems › type systems › polymorphism
type classes |
0.6 | 1 | 2022 | Staging with class: a specification for typed template Haskell · Proc. ACM Program. Lang. 2022 |
Methods — techniques the papers use, named apart from their topics
type soundness proof · 0.6beta-eta rules · 0.6
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Staging with class: a specification for typed template HaskellabstractMulti-stage programming using typed code quotation is an established technique for writing optimizing code generators with strong type-safety guarantees. Unfortunately, quotation in Haskell interacts poorly with type classes, making it difficult to write robust multi-stage programs. We study this unsound interaction and propose a resolution, staged type class constraints, which we formalize in a source calculus λ ⇒ that elaborates into an explicit core calculus F . We show type soundness of both calculi, establishing that well-typed, well-staged source programs always elaborate to well-typed, well-staged core programs, and prove beta and eta rules for code quotations. Our design allows programmers to incorporate type classes into multi-stage programs with confidence. Although motivated by Haskell, it is also suitable as a foundation for other languages that support both overloading and quotation. Ningning Xie, Matthew Pickering, Andres Löh, Nicolas Wu, Jeremy Yallop, Meng Wang 0002 |
Proc. ACM Program. Lang. | 2 |
| 2020 | Staged selective parser combinatorsabstractParser combinators are a middle ground between the fine control of hand-rolled parsers and the high-level almost grammar-like appearance of parsers created via parser generators. They also promote a cleaner, compositional design for parsers. Historically, however, they cannot match the performance of their counterparts. This paper describes how to compile parser combinators into parsers of hand-written quality. This is done by leveraging the static information present in the grammar by representing it as a tree. However, in order to exploit this information, it will be necessary to drop support for monadic computation since this generates dynamic structure. Selective functors can help recover lost functionality in the absence of monads, and the parser tree can be partially evaluated with staging. This is implemented in a library called Parsley. Jamie Willis, Nicolas Wu, Matthew Pickering |
Proc. ACM Program. Lang. | 3 |
| 2018 | Generic deriving of generic traversalsabstractFunctional programmers have an established tradition of using traversals as a design pattern to work with recursive data structures. The technique is so prolific that a whole host of libraries have been designed to help in the task of automatically providing traversals by analysing the generic structure of data types. More recently, lenses have entered the functional scene and have proved themselves to be a simple and versatile mechanism for working with product types. They make it easy to focus on the salient parts of a data structure in a composable and reusable manner. This paper uses the combination of lenses and traversals to give rise to a library with unprecedented expressivity and flexibility for querying and modifying complex data structures. Furthermore, since lenses and traversals are based on the generic shape of data, this information is used to generate code that is as efficient as hand-optimised versions. The technique leverages the structure of data to produce generic abstractions that are then eliminated by the standard workhorses of modern functional compilers: inlining and specialisation. Csongor Kiss, Matthew Pickering, Nicolas Wu |
Proc. ACM Program. Lang. | 2 |
| 2016 | Pattern synonymsabstractPattern matching has proven to be a convenient, expressive way of inspecting data. Yet this language feature, in its traditional form, is limited: patterns must be data constructors of concrete data types. No computation or abstraction is allowed. The data type in question must be concrete, with no ability to enforce any invariants. Any change in this data type requires all clients to update their code. Matthew Pickering, Gergo Érdi, Simon L. Peyton Jones, Richard A. Eisenberg |
Haskell | 1 |