|
|
Creator | Title | Description | Subject | Date |
1 |
 | Regehr, John | A practical logic framework for verifying safety properties of executables | We present a novel program logic, Lf , which is designed on top of a Hoare logic, but is simpler, more flexible and more scalable. Based on Lf , we develop a framework for automatically verifying safety properties of executables. It utilizes a whole-program interprocedural abstract interpretation to... | | 2011-01-01 |
2 |
 | Venkatasubramanian, Suresh | Approximate Bregman near neighbors in sublinear time: beyond the triangle inequality | Bregman divergences are important distance measures that are used extensively in data-driven applications such as computer vision, text mining, and speech processing, and are a key focus of interest in machine learning. Answering nearest neighbor (NN) queries under these measures is very important i... | | 2012-01-01 |
3 |
 | Regehr, John | ARMor: fully verified software fault isolation | We have designed and implemented ARMor, a system that uses software fault isolation (SFI) to sandbox application code running on small embedded processors. Sandboxing can be used to protect components such as the RTOS and critical control loops from other, less-trusted components. ARMor guarantees m... | | 2011-01-01 |
4 |
 | Regehr, John | Atomicity and visibility in tiny embedded systems | Visibility 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 visib... | | 2006-01-01 |
5 |
 | Gerig, Guido | Automatic and robust computation of 3D medial models incorporating object variability | Abstract. This paper presents a novel processing scheme for the automatic and robust computation of a medial shape model which represents an object population with shape variability. The sensitivity of medial descriptions to object variations and small boundary perturbations are fundamental problems... | | 2003-01-01 |
6 |
 | Regehr, John | Deriving abstract transfer functions for analyzing embedded software | This paper addresses the problem of creating abstract transfer functions supporting dataflow analyses. Writing these functions by hand is problematic: transfer functions are difficult to understand, difficult to make precise, and difficult to debug. Bugs in transfer functions are particularly seriou... | | 2006-01-01 |
7 |
 | Regehr, John | Edicts: implementing features with flexible binding times | In a software product line, the binding time of a feature is the time at which one decides to include or exclude a feature from a product. Typical binding site implementations are intended to support a single binding time only, e.g., compile time or run time. Sometimes, however, a product line must... | | 2008-01-01 |
8 |
 | Regehr, John | Efficient memory safety for TinyOS | Reliable 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 an... | | 2007-01-01 |
9 |
 | Regehr, John | Efficient type and memory safety for tiny embedded systems | We 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 progr... | | 2006-01-01 |
10 |
 | Regehr, John | Eliminating stack overflow by abstract interpretation | An important correctness criterion for software running on embedded microcontrollers is stack safety: a guarantee that the call stack does not overflow. Our first contribution is a method for statically guaranteeing stack safety of interrupt-driven embedded software using an approach based on contex... | | 2005-01-01 |
11 |
 | Regehr, John | Eliminating the call stack to save RAM | Most 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 presen... | | 2009-01-01 |
12 |
 | Thompson, William B. | Evaluating the accuracy of size perception in real and virtual environments | Accurate perception of the size of 3D objects depicted on 2D desktop displays is important for many applications. Whether users perceive objects depicted on a display to be the same size as comparable real world objects is not well understood. We propose using affordances judgments as a way of measu... | | 2012-01-01 |
13 |
 | Regehr, John | Finding and understanding bugs in C compilers | Compilers should be correct. To improve the quality of C compilers, we created Csmith, a randomized test-case generation tool, and spent three years using it to find compiler bugs. During this period we reported more than 325 previously unknown bugs to compiler developers. Every compiler we tested w... | | 2011-01-01 |
14 |
 | Regehr, John | Hierarchical schedulers, performance guarantees, and resource management | An attractive approach to scheduling applications with diverse CPU scheduling requirements is to use different schedulers for different applications. For example: real-time schedulers allow applications to perform computations before deadlines, time-sharing schedulers provide high throughput for com... | | 1999-01-01 |
15 |
 | Regehr, John | Interface contracts for TinyOS | TinyOS applications are built with software components that communicate through narrow interfaces. Since components enable fine-grained code reuse, this approach has been successful in creating applications that make very efficient use of the limited code and data memory on sensor network nodes. How... | | 2007-01-01 |
16 |
 | Regehr, John | Offline compression for on-chip RAM | We 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 tar... | | 2007-01-01 |
17 |
 | Regehr, John | Pluggable abstract domains for analyzing embedded software | Many 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. ... | | 2006-01-01 |
18 |
 | Regehr, John | Poster abstract: TinyOS 2.1 adding threads and memory protection to tinyOS | The release of TinyOS 2.0 two years ago was motivated by the need for greater platform flexibility, improved robustness and reliability, and a move towards service oriented application development. Since this time, we have seen the community embrace these efforts and add support for additional hardw... | | 2008-01-01 |
19 |
 | Regehr, John | The problems you're having may not be the problems you think you're having: results from a latency study of windows NT | This paper is intended to catalyze discussions on two intertwined systems topics. First, it presents early results from a latency study of Windows NT that identifies some specific causes of long thread scheduling latencies, many of which delay the dispatching of runnable threads for tens of millisec... | | 1999-01-01 |
20 |
 | Berzins, Martin | Radiation modeling using the Uintah heterogeneous CPU/GPU runtime system | The Uintah Computational Framework was developed to provide an environment for solving fluid-structure interaction problems on structured adaptive grids on large-scale, long-running, data-intensive problems. Uintah uses a combination of fluid-flow solvers and particle-based methods for solids, toget... | | 2012-01-01 |
21 |
 | Regehr, John | Random testing of interrupt-driven software | Interrupt-driven embedded software is hard to thoroughly test since it usually contains a very large number of executable paths. Developers can test more of these paths using random interrupt testing-firing random interrupt handlers at random times. Unfortunately, na¨ıve application of random test... | | 2005-01-01 |
22 |
 | Regehr, John | Surviving sensor network software faults | We describe Neutron, a version of the TinyOS operating system that efficiently recovers from memory safety bugs. Where existing schemes reboot an entire node on an error, Neutron's compiler and runtime extensions divide programs into recovery units and reboot only the faulting unit. The TinyOS kerne... | | 2009-01-01 |
23 |
 | Regehr, John | Swarm testing | Swarm testing is a novel and inexpensive way to improve the diversity of test cases generated during random testing. Increased diversity leads to improved coverage and fault detection. In swarm testing, the usual practice of potentially including all features in every test case is abandoned. Rather,... | | 2012-01-01 |
24 |
 | Regehr, John | Test-case reduction for C compiler bugs | To report a compiler bug, one must often find a small test case that triggers the bug. The existing approach to automated test-case reduction, delta debugging, works by removing substrings of the original input; the result is a concatenation of substrings that delta cannot remove. We have found this... | | 2012-01-01 |
25 |
 | Regehr, John | Volatiles are miscompiled, and what to do about it | C's volatile qualifier is intended to provide a reliable link between operations at the source-code level and operations at the memory-system level. We tested thirteen production-quality C compilers and, for each, found situations in which the compiler generated incorrect code for accessing volatile... | | 2008-01-01 |