VLDB 2026 Research / reviewers in the wild / expert
Tristan Oliver Richard Allwood
dblp:13/7583
· DBLP profile ↗
4ranked-venue papers
3as first author
0since 2021 · last 2012
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4 · 3 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 |
Software testing · 83% Programming languages and type systems · 17% |
Topics — the 5 heaviest of 5, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software testing › test generation
coverage-based test generation |
0.1 | 1 | 2011 | High coverage testing of Haskell programs · ISSTA 2011 |
Software testing › test generation
grammar-based test generation |
0.1 | 1 | 2011 | High coverage testing of Haskell programs · ISSTA 2011 |
Software testing › test generation
test suite generation |
0.1 | 1 | 2011 | High coverage testing of Haskell programs · ISSTA 2011 |
Programming languages and type systems
functional programming |
0.0 | 1 | 2011 | High coverage testing of Haskell programs · ISSTA 2011 |
Programming languages and type systems
lazy evaluation |
0.0 | 1 | 2011 | High coverage testing of Haskell programs · ISSTA 2011 |
Methods — techniques the papers use, named apart from their topics
property-based testing · 0.1needed narrowing · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2012 | Deconstraining DSLsabstractStrongly-typed functional languages provide a powerful framework for embedding Domain-Specific Languages (DSLs). However, building type-safe functions defined over an embedded DSL can introduce application-specific type constraints that end up being imposed on the DSL data types themselves. At best, these constraints are unwieldy and at worst they can limit the range of DSL expressions that can be built. We present a simple solution to this problem that allows application-specific constraints to be specified at the point of use of a DSL expression rather than when the DSL's embedding types are defined. Our solution applies equally to both tagged and tagless representations and, importantly, also works in the presence of higher-rank types. Will Jones, Tony Field, Tristan Oliver Richard Allwood |
ICFP | 3 |
| 2011 | High coverage testing of Haskell programsabstractThis paper presents a new lightweight technique for auto-matically generating high coverage test suites for Haskell library code. Our approach combines four main features to increase test coverage: (1) automatically inferring the constructors and functions needed to generate test data; (2) using needed narrowing to take advantage of Haskell’s lazy evaluation semantics; (3) inspecting elements inside re-turned data structures through the use of case statements, and (4) efficiently handling polymorphism by lazily instan-tiating all possible instances. We have implemented this technique in Irulan, a fully au-tomatic tool for systematic black-box unit testing of Haskell library code. We have designed Irulan to generate high cov-erage test suites and detect common programming errors in the process. We have applied Irulan to over 50 programs from the spectral and real suites of the nofib benchmark and show that it can effectively generate high-coverage test suites—exhibiting 70.83 % coverage for spectral and 59.78% coverage for real—and find errors in these programs. Our techniques are general enough to be useful for several other types of testing, and we also discuss our experience of using Irulan for property and regression testing. Tristan Oliver Richard Allwood, Cristian Cadar, Susan Eisenbach |
ISSTA | 1 |
| 2009 | Finding the needle: stack traces for GHCabstractEven Haskell programs can occasionally go wrong.Programs calling head on an empty list, and incomplete patterns in function definitions can cause program crashes, reporting little more than the precise location where error was ultimately called.Being told that one application of the head function in your program went wrong, without knowing which use of head went wrong can be infuriating.We present our work on adding the ability to get stack traces out of GHC, for example that our crashing head was used during the evaluation of foo, which was called during the evaluation of bar , during the evaluation of main.We provide a transformation that converts GHC Core programs into ones that pass a stack around, and a stack library that ensures bounded heap usage despite the highly recursive nature of Haskell.We call our extension to GHC StackTrace. Tristan Oliver Richard Allwood, Simon L. Peyton Jones, Susan Eisenbach |
Haskell | 1 |
| 2008 | Clase: cursor library for a structured editorabstractThe zipper is a well known design pattern for providing a cursor-like interface to a data structure. However, the classic treatise by Huet (1) only scratches the surface of some of the potential applications of the zipper. In this work we have taken inspiration from Huet, and built a library suitable as an underpinning for a structured editor for programming languages. We consider a zipper structure that is suitable for traversing heterogeneous data types, encoding routes to other places in the tree (for bookmark or quick-jump functionality), expressing lexically bound information using contexts, and traversals for rendering a program indicating where the cursor is currently focused in the whole. Tristan Oliver Richard Allwood, Susan Eisenbach |
Haskell | 1 |