ben

I’m a fourth-year Ph.D. student here at the University of Washington, studying programming languages and techniques with Dan Grossman, and learning about systems with Steve Gribble. I earned my undergraduate degree at Yale University, where I worked with with Paul Hudak and Zhong Shao, in particular on domain-specific languages and their properties.

Overall my research interests cover most of the programming pipeline, from designing more expressive languages, through improving the compilers, to certifiably proving code correct. The overarching goal is to make it easier to write programs correctly the first time, and to improve confidence in the resulting products. Currently, I am focusing on improving programming techniques for web browser extensions, which combine the challenges of language design, software engineering, and systems architecture into one intriguing problem.

Research interests and papers

  • Web browser extension compatibility: Firefox’s rise in popularity can be largely attributed to its much-touted extensions, which offer versatility, convenience and relatively-low learning curves to amateur and expert coders alike. But with such customizability comes problems: many extensions fail to work properly when installed simultaneously. This project aims to provide a better programming model for extensions that can detect and perhaps correct these conflicts before they happen.
  • Non-uniform parallelism on a GPGPU: As an internship at AT&T Research, I worked with Trevor Jim and Yitzhak Mandelbaum on accelerating parsers using a general purpose GPU and the CUDA framework.
  • Pure-Causal Atomicity: The goal of atomicity analyses is to verify that certain sections of code appear to execute atomically to all other threads. This project extends recent work on causal atomicity (a model-checking approach to verify atomicity using Petri nets) with abstract atomicity (a type-theoretic approach using purity to validate mode code patterns as atomic).
  • SEMINAL: I worked with Dan Grossman to improve the quality of error messages given by compilers. In practice, these messages are often precise but cryptic, and generating them often complicates the compilers themselves (potentially introducing bugs). This project aims to separate the two aspects of error finding and reporting, and in the process make the compilers both simpler and more informative.
  • Yampa: As my senior project at Yale, I worked on proving algebraic properties of the embedding of Yampa in Haskell.

More information can be found on the following page.

Classes and activities

Ongoing:

CSE 590p:
Programming Systems Seminar
CSE 590s:
Systems Seminar
CSE 591a:
WASP Working Group
CSE 519:
Current Research in Computer Science
CSE 520:
Computer Science Colloquium

Past courses

Contact

Email (essential):
(first initial + last name) {at} cs.washington.edu
Location (likely):
Paul G. Allen Center, Office 378
Post (possible):
UW CSE Box 352350, Seattle, WA 98195-2350