EDBT 2026 Demo / reviewers in the wild / expert
Charlie Curtsinger
dblp:34/10322
· DBLP profile ↗
9ranked-venue papers
5as 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 · 6 · 2 first-authorSystems, architecture and hardware · 4 · 3 first-author · 1 since 2021Security and privacy · 1 · 1 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.
| Computer architecture, parallel and distributed computing, and storage systems
4 papers |
Performance modeling and evaluation · 84% Distributed systems · 8% Parallel and multicore computing · 8% | |
| Software engineering, system software, and programming languages
3 papers |
Program analysis · 50% Concurrent programming · 50% | |
| Network and information security
2 papers |
Malware analysis · 68% Systems and software security · 32% |
Topics — the 16 heaviest of 17, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Performance modeling and evaluation › profiling
causal profiling |
0.5 | 2 | 2016 | COZ: Finding Code that Counts with Causal Profiling · USENIX ATC 2016 Coz: finding code that counts with causal profiling · SOSP 2015 |
Performance modeling and evaluation
profiling |
0.5 | 2 | 2016 | COZ: Finding Code that Counts with Causal Profiling · USENIX ATC 2016 Coz: finding code that counts with causal profiling · SOSP 2015 |
Program analysis
dynamic analysis |
0.2 | 1 | 2016 | DoubleTake: fast and precise error detection via evidence-based dynamic analysis · ICSE 2016 |
Program analysis › dynamic analysis
memory error detection |
0.2 | 1 | 2016 | DoubleTake: fast and precise error detection via evidence-based dynamic analysis · ICSE 2016 |
Performance modeling and evaluation
benchmarking |
0.2 | 1 | 2013 | STABILIZER: statistically sound performance evaluation · ASPLOS 2013 |
Performance modeling and evaluation
performance evaluation methodology |
0.2 | 1 | 2013 | STABILIZER: statistically sound performance evaluation · ASPLOS 2013 |
Performance modeling and evaluation › benchmarking
performance regression testing |
0.2 | 1 | 2013 | STABILIZER: statistically sound performance evaluation · ASPLOS 2013 |
Distributed systems
crowdsourcing |
0.1 | 1 | 2012 | AutoMan: a platform for integrating human-based and digital computation · OOPSLA 2012 |
Parallel and multicore computing
task scheduling |
0.1 | 1 | 2012 | AutoMan: a platform for integrating human-based and digital computation · OOPSLA 2012 |
Malware analysis › web-based malware
malicious javascript detection |
0.1 | 1 | 2011 | ZOZZLE: Fast and Precise In-Browser JavaScript Malware Detection · USENIX Security Symposium 2011 |
Concurrent programming › concurrency bugs
data races |
0.1 | 1 | 2011 | Dthreads: efficient deterministic multithreading · SOSP 2011 |
Concurrent programming
deterministic execution |
0.1 | 1 | 2011 | Dthreads: efficient deterministic multithreading · SOSP 2011 |
Concurrent programming › deterministic execution
deterministic multithreading |
0.1 | 1 | 2011 | Dthreads: efficient deterministic multithreading · SOSP 2011 |
Concurrent programming › concurrency models
multithreading |
0.1 | 1 | 2011 | Dthreads: efficient deterministic multithreading · SOSP 2011 |
Systems and software security
memory safety |
0.1 | 1 | 2016 | DoubleTake: fast and precise error detection via evidence-based dynamic analysis · ICSE 2016 |
Malware analysis
web-based malware |
0.0 | 1 | 2011 | ZOZZLE: Fast and Precise In-Browser JavaScript Malware Detection · USENIX Security Symposium 2011 |
Methods — techniques the papers use, named apart from their topics
evidence-based dynamic analysis · 0.5performance profiling · 0.4causal profiling · 0.4statistical analysis · 0.2measurement methodology · 0.2deterministic execution enforcement · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Riker: Always-Correct and Fast Incremental Builds from Simple Specifications
Charlie Curtsinger, Daniel W. Barowy |
USENIX ATC | 1 |
| 2016 | DoubleTake: fast and precise error detection via evidence-based dynamic analysisabstractPrograms written in unsafe languages like C and C++ often suffer from errors like buffer overflows, dangling pointers, and memory leaks. Dynamic analysis tools like Valgrind can detect these errors, but their overhead---primarily due to the cost of instrumenting every memory read and write---makes them too heavyweight for use in deployed applications and makes testing with them painfully slow. The result is that much deployed software remains susceptible to these bugs, which are notoriously difficult to track down. Tongping Liu, Charlie Curtsinger, Emery D. Berger |
ICSE | 2 |
| 2016 | COZ: Finding Code that Counts with Causal Profiling
Charlie Curtsinger, Emery D. Berger |
USENIX ATC | 1 |
| 2015 | Coz: finding code that counts with causal profilingabstractImproving performance is a central concern for software developers. To locate optimization opportunities, developers rely on software profilers. However, these profilers only report where programs spent their time: optimizing that code may have no impact on performance. Past profilers thus both waste developer time and make it difficult for them to uncover significant optimization opportunities. Charlie Curtsinger, Emery D. Berger |
SOSP | 1 |
| 2013 | STABILIZER: statistically sound performance evaluationabstractResearchers and software developers require effective performance evaluation. Researchers must evaluate optimizations or measure overhead. Software developers use automatic performance regression tests to discover when changes improve or degrade performance. The standard methodology is to compare execution times before and after applying changes. Charlie Curtsinger, Emery D. Berger |
ASPLOS | 1 |
| 2013 | Probabilistic timing analysis on conventional cache designsabstractProbabilistic timing analysis (PTA), a promising alternative to traditional worst-case execution time (WCET) analyses, enables pairing time bounds (named probabilistic WCET or pWCET) with an exceedance probability (e.g., 10−16), resulting in far tighter bounds than conventional analyses. However, the applicability of PTA has been limited because of its dependence on relatively exotic hardware: fully-associative caches using random replacement. This paper extends the applicability of PTA to conventional cache designs via a software-only approach. We show that, by using a combination of compiler techniques and runtime system support to randomise the memory layout of both code and data, conventional caches behave as fully-associative ones with random replacement. Leonidas Kosmidis, Charlie Curtsinger, Eduardo Quiñones, Jaume Abella 0001, Emery D. Berger, Francisco J. Cazorla |
DATE | 2 |
| 2012 | AutoMan: a platform for integrating human-based and digital computationabstractHumans can perform many tasks with ease that remain difficult or impossible for computers. Crowdsourcing platforms like Amazon's Mechanical Turk make it possible to harness human-based computational power at an unprecedented scale. However, their utility as a general-purpose computational platform remains limited. The lack of complete automation makes it difficult to orchestrate complex or interrelated tasks. Scheduling more human workers to reduce latency costs real money, and jobs must be monitored and rescheduled when workers fail to complete their tasks. Furthermore, it is often difficult to predict the length of time and payment that should be budgeted for a given task. Finally, the results of human-based computations are not necessarily reliable, both because human skills and accuracy vary widely, and because workers have a financial incentive to minimize their effort. Daniel W. Barowy, Charlie Curtsinger, Emery D. Berger, Andrew McGregor 0001 |
OOPSLA | 2 |
| 2011 | Dthreads: efficient deterministic multithreadingabstractMultithreaded programming is notoriously difficult to get right. A key problem is non-determinism, which complicates debugging, testing, and reproducing errors. One way to simplify multithreaded programming is to enforce deterministic execution, but current deterministic systems for C/C++ are incomplete or impractical. These systems require program modification, do not ensure determinism in the presence of data races, do not work with general-purpose multithreaded programs, or run up to 8.4× slower than pthreads. Tongping Liu, Charlie Curtsinger, Emery D. Berger |
SOSP | 2 |
| 2011 | ZOZZLE: Fast and Precise In-Browser JavaScript Malware Detection
Charlie Curtsinger, Benjamin Livshits, Benjamin G. Zorn, Christian Seifert |
USENIX Security Symposium | 1 |