Daniel Liew

dblp:147/4385 · DBLP profile ↗
← Back
4ranked-venue papers
3as first author
0since 2021 · last 2019
0009-0001-7602-7707ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 4 · 3 first-authorTheory of computation · 1

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
3 papers
Program verification · 44% Program analysis · 39% Software testing · 17%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
GPUs and heterogeneous computing · 100%

Topics — the 7 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis › constraint solving
floating-point constraint solving
0.412019
Just fuzz it: solving floating-point constraints using coverage-guided fuzzing · ESEC/SIGSOFT FSE 2019
Program verification › decision procedure
satisfiability modulo theories
0.412019
Just fuzz it: solving floating-point constraints using coverage-guided fuzzing · ESEC/SIGSOFT FSE 2019
Program analysis
symbolic execution
0.312017
Floating-point symbolic execution: a case study in n-version programming · ASE 2017
Software testing
test generation
0.312017
Floating-point symbolic execution: a case study in n-version programming · ASE 2017
Program verification › code-level verification
GPU kernel verification
0.212014
Engineering a Static Verification Tool for GPU Kernels · CAV 2014
Program verification
static verification
0.212014
Engineering a Static Verification Tool for GPU Kernels · CAV 2014
GPUs and heterogeneous computing
GPU programming
0.112014
Engineering a Static Verification Tool for GPU Kernels · CAV 2014

Methods — techniques the papers use, named apart from their topics

coverage-guided fuzzing · 0.4static verification · 0.4n-version programming · 0.3constraint solving · 0.3
YearPublicationVenuePosition
2019 Just fuzz it: solving floating-point constraints using coverage-guided fuzzing
abstract
We investigate the use of coverage-guided fuzzing as a means of proving satisfiability of SMT formulas over finite variable domains, with specific application to floating-point constraints. We show how an SMT formula can be encoded as a program containing a location that is reachable if and only if the program’s input corresponds to a satisfying assignment to the formula. A coverage-guided fuzzer can then be used to search for an input that reaches the location, yielding a satisfying assignment. We have implemented this idea in a tool, Just Fuzz-it Solver (JFS), and we present a large experimental evaluation showing that JFS is both competitive with and complementary to state-of-the-art SMT solvers with respect to solving floating-point constraints, and that the coverage-guided approach of JFS provides significant benefit over naive fuzzing in the floating-point domain. Applied in a portfolio manner, the JFS approach thus has the potential to complement traditional SMT solvers for program analysis tasks that involve reasoning about floating-point constraints.
Daniel Liew, Cristian Cadar, Alastair F. Donaldson, J. Ryan Stinnett
ESEC/SIGSOFT FSE1
2017 Floating-point symbolic execution: a case study in n-version programming
abstract
Symbolic execution is a well-known program analysis technique for testing software, which makes intensive use of constraint solvers. Recent support for floating-point constraint solving has made it feasible to support floating-point reasoning in symbolic execution tools. In this paper, we present the experience of two research teams that independently added floating-point support to KLEE, a popular symbolic execution engine. Since the two teams independently developed their extensions, this created the rare opportunity to conduct a rigorous comparison between the two implementations, essentially a modern case study on N-version programming. As part of our comparison, we report on the different design and implementation decisions taken by each team, and show their impact on a rigorously assembled and tested set of benchmarks, itself a contribution of the paper.
Daniel Liew, Daniel Schemmel, Cristian Cadar, Alastair F. Donaldson, Rafael Zähl, Klaus Wehrle
ASE1
2016 Symbooglix: A Symbolic Execution Engine for Boogie Programs
abstract
We present the design and implementation of Symbooglix, a symbolic execution engine for the Boogie intermediate verification language. Symbooglix aims to find bugs in Boogie programs efficiently, providing bug-finding capabilities for any program analysis framework that uses Boogie as a target language. We discuss the technical challenges associated with handling Boogie, and describe how we optimised Symbooglix using a small training set of benchmarks. This empirically-driven optimisation approach avoids over-fitting Symbooglix to ourbenchmarks, enabling a fair comparison with other tools. We present an evaluation across 3749 Boogie programs generated from the SV-COMP suite of C programs using the SMACK front-end, and 579 Boogie programs originating from several OpenCL and CUDA GPU benchmark suites, translated by the GPU Verify front-end. Our results show that Symbooglix significantly out-performs Boogaloo, an existing symbolic execution tool for Boogie, and is competitivewith GPUVerify on benchmarks for which GPUVerify is highly optimised. While generally less effective than the Corral and Duality tools on the SV-COMP suite, Symbooglix is complementary to them in terms of bug-finding ability.
Daniel Liew, Cristian Cadar, Alastair F. Donaldson
ICST1
2014 Engineering a Static Verification Tool for GPU Kernels
Ethel Bardsley, Adam Betts, Nathan Chong, Peter Collingbourne, Pantazis Deligiannis, Alastair F. Donaldson, Jeroen Ketema, Daniel Liew, Shaz Qadeer
CAV8