I'm a second-year Ph.D. student in the Computer Science and Engineering department at the University of Washington in Seattle. I'm interested in a variety of topics including programming languages, compilers, operating systems, and distributed systems. Currently I work on improving multiprocessor programmability with Luis Ceze (my advisor), Dan Grossman, and Steve Gribble as part the Sampa and WASP groups.

Previously I was a student in the Computer Science department at UCLA, where I worked with Eddie Kohler on extensible compilers. I earned a B.S. in 2005 and a M.S. in 2007 from UCLA, both in Computer Science.

Contact
E-mail: t then my last name [at] cs.washington.edu
Office: CSE 618
Address: Tom Bergan
Computer Science & Engineering, University of Washington
Box 352350
Seattle, WA 98195-2350

CV available on request

Contact
DMP
Xoc
Fun

Deterministic MultiProcessing

Multithreaded programs execute nondeterministically in today's hardware and software environments. Each time a multithreaded program runs, its instructions may interleave in a different way, causing each run to produce potentially different outputs even if supplied with the same input. This lack of reproducibility complicates testing, debugging, and replication for fault-tolerance. We argue that nondeterminism is unnecessary: shared-memory programs should always behave deterministically.

See also the DMP homepage.

CoreDet: A Compiler and Runtime System for Deterministic Multithreaded Execution
Tom Bergan, Owen Anderson, Joe Devietti, Luis Ceze, Dan Grossman March, 2010
ASPLOS 2010 (to appear)

Xoc

Xoc is an extension-oriented compiler for C which features an extensible GLR parser, concrete syntax manipulation, and pass-free lazy compilation. To the best of our knowledge, Xoc is the first compiler to support an extension-oriented paradigm, meaning that the user can select which independently-written language extensions to compose at compiler run-time, as opposed to the traditional monolithic extensible paradigm, in which each extension represents a whole new compiler. Extensions can extend both the syntax and the semantics of C, and are intended to be both terse and easy to write without knowledge of the internals of Xoc. [Description authored by Austin Clements.]

See also the Xoc homepage.

Xoc, an Extension-Oriented Compiler for Systems Programming
Russ Cox, Tom Bergan, Austin Clements, Frans Kaashoek, Eddie Kohler March, 2008
ASPLOS 2008
Typmix: A Framework For Implementing Modular, Extensible Type Systems
Tom Bergan September, 2007
Master's thesis (UCLA)

Fun

Hiking: wta.org
Cycling: maps more maps
Skiing: snoqualmie stevens pass