Todd Millstein
Associate Professor

UCLA Computer Science Department
4532K Boelter Hall
Los Angeles, CA 90095-1596
todd [at] cs.ucla.edu
(310) 825-5942

Spring 2012 Office Hours: Mon/Wed 3:30-4:30pm or by appointment

[ projects | publications | students | software | courses | professional activities | bio ]

Welcome! In my research and teaching I develop and apply programming language technology to improve the construction, maintenance, correctness, safety, and performance of software systems.


Current Research Projects

SC for (Almost) Free
  simplifying concurrent programming languages without sacrificing performance

Constraint-Based Program Repair
  automatically fixing bugs, both statically and dynamically

Network Protocol Analysis
  finding vulnerabilities in network protocols implementations

and a few other projects that don't have web pages yet!

Recent Publications

Secure Information Flow for Concurrent Programs under Total Store Order  (CSF 2012)
       Jeffrey A. Vaughan, Todd Millstein

End-to-End Sequential Consistency  (ISCA 2012)
       Abhayendra Singh, Satish Narayanasamy, Daniel Marino, Todd Millstein, Madanlal Musuvathi

Automated Repair of HTML Generation Errors in PHP Applications Using String Constraint Solving  (ICSE 2012)
       Hesam Samimi, Max Schäfer, Shay Artzi, Todd Millstein, Frank Tip, Laurie Hendren

Tool-supported Refactoring for JavaScript  (OOPSLA 2011)
       Asger Felthaus, Todd Millstein, Anders Møller, Max Schäfer, Frank Tip

more publications...

Current Students

Eric Griffis
Hesam Samimi

Graduated Students

Software

SC-LLVM: An SC-preserving C compiler
PBnJ: Executable Specifications for Online Failure Recovery
JavaCOP: Pluggable Types for Java
JPred: Expressive and Modular Predicate Dispatch
Expanders: Statically Scoped Object Adaptation
Polyglot for Java 5: Extensible Java Compiler

Recent Courses

I regularly teach these courses:

CS131: Programming Languages
   an upper-division undergraduate course on programming language concepts and the relationships among different programming paradigms

CS132: Compiler Construction
   an upper-division undergraduate course in which students build a
compiler from a subset of Java to MIPS assembly

CS231: Types and Programming Languages
   an introductory graduate course on programming language theory and static type systems

CS239: Current Topics in Programming Languages and Systems
   a graduate research seminar; most recently the topic was mobile computing

Upcoming Professional Activities

Program Committee Member, PLDI 2012
Program Committee Member, DLS 2012
External Review Committee Member, POPL 2013

Brief Biography

I joined the UCLA faculty in January 2004. I received my Ph.D. from the University of Washington Department of Computer Science, where I was a member of the Cecil group led by Craig Chambers. Before that, I was an undergraduate at Brown University, where I was advised by Paris Kanellakis and Pascal Van Hentenryck. I grew up in suburban Maryland, outside of Washington D.C.

In my spare time, I am a (mainly jazz) guitarist.