Research Projects

See the Research page for a little more information about each of these projects, or follow the individual project links for more details.

Deterministic-by-default Parallel Programming: Language and compiler techniques to make parallel programming far easier than it is today, by enabling programmers to write provably deterministic parallel programs, and by enforcing that any non-deterministic behavior is made explicit and isolated.

SVA: Secure Virtual Architecture: A compiler-based virtual machine for commodity operating systems that can greatly enhance the security and reliability of today’s systems.

SAFECode:  Compiler techniques to enforce memory safety and other safety properties efficiently for unmodified C programs.

The LLVM Compiler Infrastructure: A novel virtual instruction set and compiler infrastructure that enables lifelong analysis and transformation of programs in arbitrary programming languages.


Current and Previous Classes

  1. BulletCS 241: Introduction to Systems Programming

  2. BulletCS 426: Compiler Construction

  3. BulletCS 526: Advanced Compiler Construction

  4. BulletCS 421: Programming Languages and Compilers

  5. BulletCS 591ACT: Compiler Seminar (with David Padua and Maria Garzaran)

  6. BulletCS 598: Wide-Area Parallel Programming

Teaching Techniques and Materials

  1. BulletProfessor Richard Felder's page on "Resources in Science and Engineering Education".

Vikram S. Adve

Professional Activities

Program Chair, Fifteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2010)

Associate Editor, ACM Transactions on Programming Languages and Systems (TOPLAS), since May 2003.

Program Co-Chair, 2008 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE 2008)

Program Co-Chair, The 20th International Workshop on Languages and Compilers for Parallel Computing (LCPC 2007)

Program Committee Member, CGO (2005), ICPP 2003, IPDPS (2001, 2002), ISMM (2006), LCPC (2006, 2007, 2008), LCR (2002), PLDI (2001), PPOPP (2003, 2006)), SIGMETRICS (2002, 2003, 2005), Supercomputing (2004, VEE (2006, 2008)

Information for Prospective Students

  1. If you are interested in joining our research group, please read the following.

  2. I am always looking for truly outstanding graduate or undergraduate students for the projects listed above.  More than anything else, I am looking for students who are (a) creative or intellectually strong, and (b) ambitious and hard-working.

  3. I take on undergraduates, Masters (MS) students and Ph.D. students.  I can generally give Research Assistantships only to Ph.D. students because our research funding is nearly always intended for long term research projects that require a sustained effort over several years.  Note that if you join our group as a Ph.D. student, you should not expect to stop after 1.5 or 2 years with an MS degree: the research projects will generally not be appropriate for an MS thesis, which is relatively narrow research.

  4. I am willing to take on students interested in an MS for shorter term projects.  An MS thesis nearly always must be publishable research, though in exceptional circumstances, I think an MS might be justified for development or experimental work that contributes significantly to one or more of our projects.

  5. I am always looking for outstanding undergraduate students interested in research and/or programming experience.  I have taken on students ranging from seniors to freshmen: what I look for is someone with an interest in experimental software research, and the drive to work hard and succeed.

  6. If you fit these criteria, send me email with a Subject line that has the prefix:

  7.                 “[Prospective Student] ”

  8. or use this link to send me email -- just so I know you have read this (I am not filtering such email!).  Include an up-to-date CV (resume), and say what degree you seek and what project(s) in our group interest you.  I will contact you if I want to follow up.  I get a lot of such email, so do not take it personally if I do not reply.  Thanks for your interest!