Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Daniel DeFreez

dblp:215/4842 · DBLP profile ↗
← Back
6ranked-venue papers
5as first author
2since 2021 · last 2025
—ORCID · none

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

Software engineering, systems software and programming languages · 3 · 3 first-authorSystems, architecture and hardware · 1 · 1 first-authorHuman-computer interaction and ubiquitous computing · 1 · 1 since 2021Applied, interdisciplinary, general and emerging computing · 1 · 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
4 papers
Program analysis · 75% Debugging and program repair · 14% Software maintenance and evolution · 11%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Parallel and multicore computing · 100%
Network and information security
2 papers
Systems and software security · 100%
Databases, data mining, and information retrieval
1 paper
Data mining · 50% Graph data management · 50%

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

TopicWeightPapersLastEvidence papers
Program analysis
static analysis
1.542020
Detecting and reproducing error-code propagation bugs in MPI implementations · PPoPP 2020
Effective error-specification inference via domain-knowledge expansion · ESEC/SIGSOFT FSE 2019
Path-based function embedding and its application to error-handling specification mining · ESEC/SIGSOFT FSE 2018
Debugging and program repair
automated program repair
0.412020
Detecting and reproducing error-code propagation bugs in MPI implementations · PPoPP 2020
Program analysis › static analysis
bug detection
0.412020
Detecting and reproducing error-code propagation bugs in MPI implementations · PPoPP 2020
Parallel and multicore computing
MPI
0.412020
Detecting and reproducing error-code propagation bugs in MPI implementations · PPoPP 2020
Program analysis › specification mining
error specification inference
0.412019
Effective error-specification inference via domain-knowledge expansion · ESEC/SIGSOFT FSE 2019
Software maintenance and evolution
program comprehension
0.312018
Path-based function embedding and its application to error-handling specification mining · ESEC/SIGSOFT FSE 2018
Systems and software security › software vulnerability
error handling bugs
0.222019
Effective error-specification inference via domain-knowledge expansion · ESEC/SIGSOFT FSE 2019
Mining error-handling specifications for systems software · ESEC/SIGSOFT FSE 2018
Graph data management
graph embedding
0.112018
Path-based function embedding and its application to error-handling specification mining · ESEC/SIGSOFT FSE 2018
Data mining
representation learning
0.112018
Path-based function embedding and its application to error-handling specification mining · ESEC/SIGSOFT FSE 2018

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

fault injection · 0.9intraprocedural flow-sensitive analysis · 0.8interprocedural context-insensitive analysis · 0.8random walk · 0.7neural network · 0.7interprocedural control-flow graph · 0.3interprocedural control flow graph · 0.3
YearPublicationVenuePosition
2025 The Wizard in the Town Plaza: Voice-Based Interactive Storytelling in Public Spaces
Daniel DeFreez, Jackson Harrower, Travis Wood, Cynthia Salbato
ICCC1
2023 Transpiling Nand2Tetris to VHDL for Teaching Digital Logic
abstract
Nand2Tetris is a popular introduction to digital logic and computer organization that uses a simplified hardware description language (HDL) to program a hardware simulator. The stripped-down HDL allows students to focus on concepts over ceremony, but does not support running designs on real, physical devices such as FPGAs. In contrast, designs written in an industrial-strength language such as VHDL or Verilog can be run on FPGAs, but are burdened with a significant learning curve. WHiDL is a source-to-source compiler that translates Nand2Tetris HDL to VHDL. The conversion to VHDL allows HDL programs to be run on an FPGA while retaining the simplicity of the original HDL.
Noah Mogensen, Daniel DeFreez
ITiCSE (2)2
2020 Detecting and reproducing error-code propagation bugs in MPI implementations
abstract
We present an approach to automatically detect and reproduce error code propagation bugs in MPI implementations. Specifically, we combine static analysis and program repair for bug detection, and apply fault injection to reproduce error propagation bugs found in MPI libraries written in C. We demonstrate our approach on the MPICH library, one of the most popular implementations of MPI, and the MPICH-based implementation MVAPICH, uncovering 447 previously unknown bugs. We discovered that 31 of these bugs result in program crashes, and 60% of the MPICH test suite is susceptible to crashing due to failures to propagate error codes. Moreover, 95 bugs produce undesirable behavior that has been confirmed dynamically, causing tests to fail, hanging processes, or simply dropping error codes before reaching user applications.
Daniel DeFreez, Antara Bhowmick, Ignacio Laguna, Cindy Rubio-González
PPoPP1
2019 Effective error-specification inference via domain-knowledge expansion
abstract
Error-handling code responds to the occurrence of runtime errors. Failure to correctly handle errors can lead to security vulnerabilities and data loss. This paper deals with error handling in software written in C that uses the return-code idiom: the presence and type of error is encoded in the return value of a function. This paper describes EESI, a static analysis that infers the set of values that a function can return on error. Such a function error-specification can then be used to identify bugs related to incorrect error handling. The key insight of EESI is to bootstrap the analysis with domain knowledge related to error handling provided by a developer. EESI uses a combination of intraprocedural, flow-sensitive analysis and interprocedural, context-insensitive analysis to ensure precision and scalability. We built a tool ECC to demonstrate how the function error-specifications inferred by EESI can be used to automatically find bugs related to incorrect error handling. ECC detected 246 bugs across 9 programs, of which 110 have been confirmed. ECC detected 220 previously unknown bugs, of which 99 are confirmed. Two patches have already been merged into OpenSSL.
Daniel DeFreez, Haaken Martinson Baldwin, Cindy Rubio-González, Aditya V. Thakur
ESEC/SIGSOFT FSE1
2018 Mining error-handling specifications for systems software
abstract
This paper presents a technique for mining error-handling specifications from systems software. It presents a static analysis for detecting error handlers in low-level code, and it shows how function synonyms can be used to mine for error-handling specifications with only a few supporting examples.
Daniel DeFreez
ESEC/SIGSOFT FSE1
2018 Path-based function embedding and its application to error-handling specification mining
abstract
Identifying relationships among program elements is useful for program understanding, debugging, and analysis. One such kind of relationship is synonymy. Function synonyms are functions that play a similar role in code; examples include functions that perform initialization for different device drivers, and functions that implement different symmetric-key encryption schemes. Function synonyms are not necessarily semantically equivalent and can be syntactically dissimilar; consequently, approaches for identifying code clones or functional equivalence cannot be used to identify them. This paper presents Func2 vec , a technique that learns an embedding mapping each function to a vector in a continuous vector space such that vectors for function synonyms are in close proximity. We compute the function embedding by training a neural network on sentences generated using random walks over the interprocedural control-flow graph. We show the effectiveness of Func2 vec at identifying function synonyms in the Linux kernel. Finally, we apply Func2 vec to the problem of mining error-handling specifications in Linux file systems and drivers. We show that the function synonyms identified by Func2 vec result in error-handling specifications with high support.
Daniel DeFreez, Aditya V. Thakur, Cindy Rubio-González
ESEC/SIGSOFT FSE1