• Publications
  • Influence
EnerJ: approximate data types for safe and general low-power computation
EnerJ is developed, an extension to Java that adds approximate data types and a hardware architecture that offers explicit approximate storage and computation and allows a programmer to control explicitly how information flows from approximate data to precise data. Expand
Cyclone: A Safe Dialect of C
This paper examines safety violations enabled by C’s design, and shows how Cyclone avoids them, without giving up C”s hallmark control over low-level details such as data representation and memory management. Expand
CoreDet: a compiler and runtime system for deterministic multithreaded execution
This work develops a compiler and runtime system that runs arbitrary multithreaded C/C++ POSIX Threads programs deterministically but resorts to serialization rarely, for handling interthread communication and synchronization. Expand
TALx86: A Realistic Typed Assembly Language∗
The goal of typed assembly language (TAL) is to provide a low-level, statically typed target language that is better suited than Java bytecodes for supporting a wide variety of source languages and aExpand
Region-based memory management in cyclone
This paper focuses on the region-based memory management of Cyclone and its static typing discipline, and combines default annotations, local type inference, and a novel treatment of region effects to reduce this burden. Expand
Enforcing isolation and ordering in STM
The results on a set of Java programs show that strong atomicity can be implemented efficiently in a high-performance STM system and introduces a dynamic escape analysis that differentiates private and public data at runtime to make barriers cheaper and a static not-accessed-in-transaction analysis that removes many barriers completely. Expand
Searching for type-error messages
This work pursues a new approach to constructing compilers and presenting type-error messages in which the type-checker itself does not produce the messages, and is an oracle for a search procedure that finds similar programs that do type-checking. Expand
Automatic Inference of Structural Changes for Matching across Program Versions
This work represents structural changes as a set of high-level change rules, automatically infers likely change rules and determines method-level matches based on the rules and shows that this representation can serve as a better basis for other software engineering tools. Expand
IFRit: interference-free regions for dynamic data-race detection
This work proposes a new algorithm for dynamic data-race detection based on a run-time abstraction called an interference-free region (IFR), and shows that for the PARSEC benchmarks, and several real-world applications, IFRit finds many of the races detected by a fully-precise detector. Expand
ASF: AMD64 Extension for Lock-Free Data Structures and Transactional Memory
An out-of-order hardware design to implement ASF on a future AMD processor is developed and the experimental results show that the combined use of the L1 cache and the LS unit is very helpful for the performance robustness of ASF-based lock free data structures, and that the selective use of speculative accesses enables transactional programs to scale with limited ASF hardware resources. Expand