I am a second-year doctoral student in
the CSE Department at the
University of
Washington in Seattle.
I am an active member of
the PLSE group, and am
advised by
Prof. Michael
D. Ernst. I received my B.S. in Computer Science
at Purdue University, where I was
advised by Prof. Jan
Vitek and did research in
the S3 Lab.
Research
My primary research interests are the intersection of programming languages, software engineering, and the programmable web. For too long, these fields have been segregated; I enjoy building mutually-beneficial bridges between them. My current research focuses on improving developer productivity, quantifying and furthering application and runtime performance, and understanding languages and software at scale.
Timelapse: back-in-time debugging for the web
Current web
browser debuggers are inadequate for today's complex, event-driven,
and nondeterministic web
applications. The Timelapse
project adapts back-in-time debugging techniques to the
domain of client-side web programming. Unlike traditional breakpoint
debuggers, Timelapse creates an exact recording of a web program's
execution. This recording can be then played forward and backward and
freely inspected at any time, using existing debugging
tools. Timelapse also introduces novel trace analyses that help
developers navigate execution recordings more efficiently.
Timelapse is currently under
development. I am looking to collaborate with strong UW undergraduates
who are interested in debugging, web applications, and/or dynamic
analysis. Contact me for details.
Timelapse currently extends the debugger tools and runtime of
the WebKit platform. More
information is available on the Timelapse project page.
Collaborative Optimization
Recent advances in just-in-time compilation for JavaScript have
made it possible to deploy large-scale applications using the HTML 5
platform. Unfortunately, web applications are still orders of
magnitude slower than native applications. We
propose collaborative optimization as a way to transparently
improve performance by harnessing the "collective knowledge" about how
individual web applications run. In essence, we extend traditional
profile-guided optimization to collect profiles over many users,
summarize profiles at web-scale, and then distribute optimization
hints to any users that are able to take advantage of such hints.
Collabopt is currently under development; Once
again, I'm looking to collaborate with strong students interested
in browsers, language implementation/optimization, and data
mining. Contact me for details.
I spent some
time developing collabopt infrastructure while at
Mozilla
Research. For research updates, watch
my blog!
Past Projects
Dynamics of JavaScript
JavaScript has recently become of interest to language researchers;
these brave souls have targeted it for language extensions, program
analysis, and other research. Depending on whom you ask, JavaScript
is either well-behaved or extremely unpredictable. This is worrying,
since most research must make simplifying assumptions: if these
assumptions do not hold, then research claims may be unfounded. We aim
to quantify how JavaScript code actually behaves in the wild, and
whether this aligns with assumptions found in programmer folklore and
the literature.
The DynJS project analyzes the dynamic (runtime) behavior of JavaScript in an effort to better quantify how the language is used. To date, we have focused on aspects of dynamicity in general (PLDI 2010), as well as uses of eval specificially (ECOOP 2011).
C3 - Lowering the barrier to browser extensibility
In areas of research that require software it is common for researchers to experiment and extend research software via runtime extensions or by hacking and recompiling project sources. Neither of these are palatable for web researchers: most web browsers consist of mountains of highly-optimized C++ code, and provide only a few ad-hoc extension mechanisms.
I helped build C3, an experimental HTML platform for web-related research, during an internship at Microsoft Research. C3 is built from the ground-up for flexibility: it is written in managed C#, it generalizes several existing extension mechanisms and adds new extension points in a systematic way. Several architectural features encourage modularity and experimentation.
Publications
My publications are listed below, most recent first. Subsets of my publications are also listed on DBLP and other places.
Conference Papers
- G. Richards, C. Hammer, B. Burg, J. Vitek. The eval that men do: A large-scale study of the use of eval in JavaScript applications. ECOOP 2011.
- B. Burg. Exploiting the collective wisdom of web application executions. PLDI 2011 FIT Track.
- B. S. Lerner, B. Burg, H. Venter, W. Schulte. C3: An Experimental, Extensible, Reconfigurable Platform for HTML-based Applications. WebApps 2011.
- G. Richards, S. Lebresne, B. Burg, J. Vitek. An analysis of the dynamic behavior of JavaScript programs. PLDI 2010.
Contact
I prefer communication by email. If you would like to chat via Skype or telephone, please let me know by email first. If you would like to schedule a meeting with me, please consult my schedule/calendar and propose a few times that are acceptable to you.
- last-name@cs.washington.edu (or @cs.uw.edu, if you prefer)
- @brrian
- office
- CSE 362
- fax
- 1-206-543-2969
- postal
Department of Computer Science and Engineering University of Washington Box 352350 Seattle, WA 98195
- courier (FedEx, UPS)
Brian Burg AC101 Paul G. Allen Center 185 Stevens Way Seattle, WA 98195
© 2011 Brian Burg and the University of Washington. All Rights Reserved.