VLDB 2026 Research / reviewers in the wild / expert
Nathan Cooprider
dblp:43/6306
· DBLP profile ↗
7ranked-venue papers
3as first author
0since 2021 · last 2009
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 2 first-authorComputer networks · 1 · 1 first-authorDatabases, 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
1 paper |
Compilers and program optimization · 38% Operating systems · 38% Program analysis · 23% | |
| Network and information security
1 paper |
Systems and software security · 100% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Embedded and real-time systems · 100% | |
| Computer networks
1 paper |
Internet of things and sensor networks · 100% |
Topics — the 7 heaviest of 7, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Systems and software security
memory safety |
0.1 | 1 | 2007 | Efficient memory safety for TinyOS · SenSys 2007 |
Operating systems › resource management › memory management
memory compression |
0.1 | 1 | 2007 | Offline compression for on-chip ram · PLDI 2007 |
Compilers and program optimization
memory optimization |
0.1 | 1 | 2007 | Offline compression for on-chip ram · PLDI 2007 |
Embedded and real-time systems
embedded software |
0.1 | 1 | 2007 | Offline compression for on-chip ram · PLDI 2007 |
Internet of things and sensor networks
wireless sensor network |
0.0 | 1 | 2007 | Efficient memory safety for TinyOS · SenSys 2007 |
Program analysis › static analysis › abstract interpretation
value set analysis |
0.0 | 1 | 2007 | Offline compression for on-chip ram · PLDI 2007 |
Program analysis › static analysis › interprocedural analysis
whole-program analysis |
0.0 | 1 | 2007 | Offline compression for on-chip ram · PLDI 2007 |
Methods — techniques the papers use, named apart from their topics
source-to-source transformation · 0.1safe compilation · 0.1pointer set analysis · 0.1nesc extension · 0.1interrupt-driven concurrency · 0.1dead-data elimination · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2009 | Efficient multiple hypothesis tracking by track segment graph
Chee-Yee Chong, Greg Castañón, Nathan Cooprider, Shozo Mori, Ravi Ravichandran, Robert Macior |
FUSION | 3 |
| 2009 | Eliminating the call stack to save RAMabstractMost programming languages support a call stack in the programming model and also in the runtime system.We show that for applications targeting low-power embedded microcontrollers (MCUs), RAM usage can be significantly decreased by partially or completely eliminating the runtime callstack. We present flattening, a transformation that absorbs a function into its caller, replacing function invocations and returns with jumps. Unlike inlining, flattening does not duplicate the bodies of functions that have multiple callsites. Applied aggressively, flattening results in stack elimination. Flattening is most useful in conjunction with a lifting transformation that moves global variables into a local scope. Xuejun Yang, Nathan Cooprider, John Regehr |
LCTES | 2 |
| 2007 | Offline compression for on-chip ramabstractWe present offline RAM compression, an automated source-to-source transformation that reduces a program's data size. Statically allocated scalars, pointers, structures, and arrays are encoded and packed based on the results of a whole-program analysis in the value set and pointer set domains. We target embedded software written in C that relies heavily on static memory allocation and runs on Harvard-architecture microcontrollers supporting just a few KB of on-chip RAM. On a collection of embedded applications for AVR microcontrollers, our transformation reduces RAM usage by an average of 12%, in addition to a 10% reduction through a dead-data elimination pass that is also driven by our whole-program analysis, for a total RAM savings of 22%. We also developeda technique for giving developers access to a flexible spectrum of tradeoffs between RAM consumption, ROM consumption, and CPU efficiency. This technique is based on a model for estimating the cost/benefit ratio of compressing each variable and then selectively compressing only those variables that present a good value proposition in terms of the desired tradeoffs. Nathan Cooprider, John Regehr |
PLDI | 1 |
| 2007 | Efficient memory safety for TinyOSabstractReliable sensor network software is difficult to create: applications are concurrent and distributed, hardware-based memory protection is unavailable, and severe resource constraints necessitate the use of unsafe, low-level languages. Our work improves this situation by providing efficient memory and type safety for TinyOS 2 applications running on the Mica2, MicaZ, and TelosB platforms. Safe execution ensures that array and pointer errors are caught before they can corrupt RAM. Our contributions include showing that aggressive optimizations can make safe execution practical in terms of resource usage; developing a technique for efficiently enforcing safety under interrupt-driven concurrency; extending the nesC language and compiler to support safety annotations; finding previously unknown bugs in TinyOS; and, finally, showing that safety can be exploited to increase the availability of sensor networks applications even when memory errors are left unfixed. Nathan Cooprider, Will Archer, Eric Eide, David Gay, John Regehr |
SenSys | 1 |
| 2006 | Efficient type and memory safety for tiny embedded systemsabstractWe report our experience in implementing type and memory safety in an efficient manner for sensor network nodes running TinyOS: tiny embedded systems running legacy, C-like code. A compiler for a safe language must often insert dynamic checks into the programs it produces; these generally make programs both larger and slower. In this paper, we describe our novel compiler toolchain, which uses a family of techniques to minimize or avoid these run-time costs. Our results show that safety can in fact be implemented cheaply on low-end 8-bit microcontrollers. John Regehr, Nathan Cooprider, Will Archer, Eric Eide |
PLOS | 2 |
| 2006 | Atomicity and visibility in tiny embedded systemsabstractVisibility is a property of a programming language's memory model that determines when values stored by one concurrent computation become visible to other computations. Our work exploits the insight that in nesC, a C-like language with explicit atomicity, the traditional way of ensuring timely visibility---volatile variables---can be entirely avoided. This is advantageous because the volatile qualifier is a notorious source of programming errors and misunderstandings. Furthermore, the volatile qualifier hurts performance by inhibiting many more optimizations than are necessary to ensure visibility. In this paper we extend the semantics of nesC's atomic statements to include a visibility guarantee, we show two ways that these semantics can be implemented, and we also show that our better implementation has no drawbacks in terms of resource usage. John Regehr, Nathan Cooprider, David Gay |
PLOS | 2 |
| 2006 | Pluggable abstract domains for analyzing embedded softwareabstractMany abstract value domains such as intervals, bitwise, constants, and value-sets have been developed to support dataflow analysis. Different domains offer alternative tradeoffs between analysis speed and precision. Furthermore, some domains are a better match for certain kinds of code than others. This paper presents the design and implementation of cXprop, an analysis and transformation tool for C that implements "conditional X propagation," a generalization of the well-known conditional constant propagation algorithm where X is an abstract value domain supplied by the user. cXprop is interprocedural, context-insensitive, and achieves reasonable precision on pointer-rich codes. We have applied cXprop to sensor network programs running on TinyOS, in order to reduce code size through interprocedural dead code elimination, and to find limited-bitwidth global variables. Our analysis of global variables is supported by a novel concurrency model for interrupt-driven software. cXprop reduces TinyOS application code size by an average of 9.2% and predicts an average data size reduction of 8.2% through RAM compression. Nathan Cooprider, John Regehr |
LCTES | 1 |