Charlie Curtsinger

dblp:34/10322 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Performance modeling and evaluation › profiling
causal profiling
0.522016
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.522016
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.212016
DoubleTake: fast and precise error detection via evidence-based dynamic analysis · ICSE 2016
Program analysis › dynamic analysis
memory error detection
0.212016
DoubleTake: fast and precise error detection via evidence-based dynamic analysis · ICSE 2016
Performance modeling and evaluation
benchmarking
0.212013
STABILIZER: statistically sound performance evaluation · ASPLOS 2013
Performance modeling and evaluation
performance evaluation methodology
0.212013
STABILIZER: statistically sound performance evaluation · ASPLOS 2013
Performance modeling and evaluation › benchmarking
performance regression testing
0.212013
STABILIZER: statistically sound performance evaluation · ASPLOS 2013
Distributed systems
crowdsourcing
0.112012
AutoMan: a platform for integrating human-based and digital computation · OOPSLA 2012
Parallel and multicore computing
task scheduling
0.112012
AutoMan: a platform for integrating human-based and digital computation · OOPSLA 2012
Malware analysis › web-based malware
malicious javascript detection
0.112011
ZOZZLE: Fast and Precise In-Browser JavaScript Malware Detection · USENIX Security Symposium 2011
Concurrent programming › concurrency bugs
data races
0.112011
Dthreads: efficient deterministic multithreading · SOSP 2011
Concurrent programming
deterministic execution
0.112011
Dthreads: efficient deterministic multithreading · SOSP 2011
Concurrent programming › deterministic execution
deterministic multithreading
0.112011
Dthreads: efficient deterministic multithreading · SOSP 2011
Concurrent programming › concurrency models
multithreading
0.112011
Dthreads: efficient deterministic multithreading · SOSP 2011
Systems and software security
memory safety
0.112016
DoubleTake: fast and precise error detection via evidence-based dynamic analysis · ICSE 2016
Malware analysis
web-based malware
0.012011
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
YearPublicationVenuePosition
2022 Riker: Always-Correct and Fast Incremental Builds from Simple Specifications
Charlie Curtsinger, Daniel W. Barowy
USENIX ATC1
2016 DoubleTake: fast and precise error detection via evidence-based dynamic analysis
abstract
Programs 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
ICSE2
2016 COZ: Finding Code that Counts with Causal Profiling
Charlie Curtsinger, Emery D. Berger
USENIX ATC1
2015 Coz: finding code that counts with causal profiling
abstract
Improving 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
SOSP1
2013 STABILIZER: statistically sound performance evaluation
abstract
Researchers 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
ASPLOS1
2013 Probabilistic timing analysis on conventional cache designs
abstract
Probabilistic 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
DATE2
2012 AutoMan: a platform for integrating human-based and digital computation
abstract
Humans 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
OOPSLA2
2011 Dthreads: efficient deterministic multithreading
abstract
Multithreaded 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
SOSP2
2011 ZOZZLE: Fast and Precise In-Browser JavaScript Malware Detection
Charlie Curtsinger, Benjamin Livshits, Benjamin G. Zorn, Christian Seifert
USENIX Security Symposium1