Demo Data from EDBT 2026 / reviewers in the wild / expert
Eric M. Schulte
dblp:32/8523
· DBLP profile ↗
8ranked-venue papers
3as 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 · 6 · 3 first-authorSystems, architecture and hardware · 2 · 2 first-authorArtificial intelligence and machine learning · 1Security and privacy · 1Databases, data management, data science and information retrieval · 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
4 papers |
Program analysis · 58% Debugging and program repair · 29% Compilers and program optimization · 13% | |
| Theoretical computer science
1 paper |
Logic in computer science · 100% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Energy-efficient computing · 54% Embedded and real-time systems · 46% |
Topics — the 6 heaviest of 8, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
binary analysis |
0.4 | 1 | 2020 | Datalog Disassembly · USENIX Security Symposium 2020 |
Program analysis › binary analysis
disassembly |
0.4 | 1 | 2020 | Datalog Disassembly · USENIX Security Symposium 2020 |
Debugging and program repair
automated program repair |
0.3 | 2 | 2013 | Automated repair of binary and assembly programs for cooperating embedded devices · ASPLOS 2013 Automated program repair through the evolution of assembly code · ASE 2010 |
Debugging and program repair › automated program repair
evolutionary repair |
0.2 | 1 | 2013 | Automated repair of binary and assembly programs for cooperating embedded devices · ASPLOS 2013 |
Logic in computer science › logic programming
datalog |
0.1 | 1 | 2020 | Datalog Disassembly · USENIX Security Symposium 2020 |
Embedded and real-time systems › embedded system design
resource-constrained embedded devices |
0.0 | 1 | 2013 | Automated repair of binary and assembly programs for cooperating embedded devices · ASPLOS 2013 |
Methods — techniques the papers use, named apart from their topics
static analysis · 0.9datalog · 0.9evolutionary computation · 0.8superoptimization · 0.4profile-guided optimization · 0.4predictive modeling · 0.4genetic algorithm · 0.4test cases · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Datalog Disassembly
Antonio Flores-Montoya, Eric M. Schulte |
USENIX Security Symposium | 2 |
| 2019 | Automated Customized Bug-Benchmark GenerationabstractWe introduce Bug-Injector, a system that automatically creates benchmarks for customized evaluation of static analysis tools. We share a benchmark generated using Bug-Injector and illustrate its efficacy by using it to evaluate the recall of two leading open-source static analysis tools: Clang Static Analyzer and Infer. Bug-Injector works by inserting bugs based on bug templates into real-world host programs. It runs tests on the host program to collect dynamic traces, searches the traces for a point where the state satisfies the preconditions for some bug template, then modifies the host program to "inject" a bug based on that template. Injected bugs are used as test cases in a static analysis tool evaluation benchmark. Every test case is accompanied by a program input that exercises the injected bug. We have identified a broad range of requirements and desiderata for bug benchmarks; our approach generates on-demand test benchmarks that meet these requirements. It also allows us to create customized benchmarks suitable for evaluating tools for a specific use case (e.g., a given codebase and set of bug types). Our experimental evaluation demonstrates the suitability of our generated benchmark for evaluating static bug-detection tools and for comparing the performance of different tools. Vineeth Kashyap, Jason Ruchti, Lucja Kot, Emma Turetsky, Rebecca Swords, Shih An Pan, Julien Henry, David Melski, Eric M. Schulte |
SCAM | 9 |
| 2018 | Using recurrent neural networks for decompilationabstractDecompilation, recovering source code from binary, is useful in many situations where it is necessary to analyze or understand software for which source code is not available. Source code is much easier for humans to read than binary code, and there are many tools available to analyze source code. Existing decompilation techniques often generate source code that is difficult for humans to understand because the generated code often does not use the coding idioms that programmers use. Differences from human-written code also reduce the effectiveness of analysis tools on the decompiled source code. To address the problem of differences between decompiled code and human-written code, we present a novel technique for decompiling binary code snippets using a model based on Recurrent Neural Networks. The model learns properties and patterns that occur in source code and uses them to produce decompilation output. We train and evaluate our technique on snippets of binary machine code compiled from C source code. The general approach we outline in this paper is not language-specific and requires little or no domain knowledge of a language and its properties or how a compiler operates, making the approach easily extensible to new languages and constructs. Furthermore, the technique can be extended and applied in situations to which traditional decompilers are not targeted, such as for decompilation of isolated binary snippets; fast, on-demand decompilation; domain-specific learned decompilation; optimizing for readability of decompilation; and recovering control flow constructs, comments, and variable or function names. We show that the translations produced by this technique are often accurate or close and can provide a useful picture of the snippet's behavior. Deborah S. Katz, Jason Ruchti, Eric M. Schulte |
SANER | 3 |
| 2017 | MuSynth: Program Synthesis via Code Reuse and Code Manipulation
Vineeth Kashyap, Rebecca Swords, Eric M. Schulte, David Melski |
SSBSE | 3 |
| 2014 | Post-compiler software optimization for reducing energyabstractModern compilers typically optimize for executable size and speed, rarely exploring non-functional properties such as power efficiency. These properties are often hardware-specific, time-intensive to optimize, and may not be amenable to standard dataflow optimizations. We present a general post-compilation approach called Genetic Optimization Algorithm (GOA), which targets measurable non-functional aspects of software execution in programs that compile to x86 assembly. GOA combines insights from profile-guided optimization, superoptimization, evolutionary computation and mutational robustness. GOA searches for program variants that retain required functional behavior while improving non-functional behavior, using characteristic workloads and predictive modeling to guide the search. The resulting optimizations are validated using physical performance measurements and a larger held-out test suite. Our experimental results on PARSEC benchmark programs show average energy reductions of 20%, both for a large AMD system and a small Intel system, while maintaining program functionality on target workloads. Eric M. Schulte, Jonathan Dorn, Stephen Harding, Stephanie Forrest, Westley Weimer |
ASPLOS | 1 |
| 2013 | Automated repair of binary and assembly programs for cooperating embedded devicesabstractWe present a method for automatically repairing arbitrary software defects in embedded systems, which have limited memory, disk and CPU capacities, but exist in great numbers. We extend evolutionary computation (EC) algorithms that search for valid repairs at the source code level to assembly and ELF format binaries, compensating for limited system resources with several algorithmic innovations. Our method does not require access to the source code or build toolchain of the software under repair, does not require program instrumentation, specialized execution environments, or virtual machines, or prior knowledge of the bug type. Eric M. Schulte, Jonathan DiLorenzo, Westley Weimer, Stephanie Forrest |
ASPLOS | 1 |
| 2010 | Automated program repair through the evolution of assembly codeabstractA method is described for automatically repairing legacy software at the assembly code level using evolutionary computation. The technique is demonstrated on Java byte code and x86 assembly programs, showing how to find program variations that correct defects while retaining desired behavior. Test cases are used to demonstrate the defect and define required functionality. The paper explores advantages of assembly-level repair over earlier work at the source code level - the ability to repair programs written in many different languages; and the ability to repair bugs that were previously intractable. The paper reports experimental results showing reasonable performance of assembly language repair even on non-trivial programs Eric M. Schulte, Stephanie Forrest, Westley Weimer |
ASE | 1 |
| 2010 | An application of document filtering in an operational system
Paul E. Lehner, Charles Worrell, Chrissy Vu, Janet S. Mittel, Stephen Snyder, Eric M. Schulte, Warren Greiff |
Inf. Process. Manag. | 6 |