|
I am an associate professor in the Computer Science Department and UMIACS, and an affiliate associate
professor in the Electrical and Computer
Engineering Department, at the University of Maryland, College Park. I am
also a member of CHESS.
The overarching goal of my research is to learn how to
develop more flexible, reliable, and secure software. My research
bridges the areas of "systems" and programming languages, in that I
have frequently applied or developed language-based technology to solve
systems problems, particularly in networking and distributed systems.
My current projects are described below.
I am fortunate to be a part of
PLUM: Programming
Languages research at the University of Maryland. We developed a
strategy for running our research group, which we call Scram,
that we think is interesting and effective; we'd be curious to get
your thoughts.
Here is my current vita and a list of my publications, organized by year and by category.
I received my Ph.D. in Computer
and Information Science from the University
of Pennsylvania in August 2001, and I spent one year as a
post-doctoral associate affiliated with the Information Assurance Institute
of the Computer Science
Department at Cornell University.
How fast
can you type? (My best so far is 97 wpm.)
Students
Current Students:
Graduated/graduating students:
| Iulian
Neamtiu |
Asst. Prof, UC Riverside,
starting Fall 2008 |
| Polyvios
Pratikakis* |
Post-doc, CNRS/VERIMAG,
starting Fall 2008
|
| Nikhil
Swamy |
Researcher, Microsoft Research, Redmond,
starting Fall 2008 |
| Jeff Meister* (undergrad) |
Grad student, UCSD, starting Fall 2008 |
| Nick
Petroni** |
Research scientist, IDA/CCS
since Spring 2008 |
| Manuel
Oriol (postdoc) |
Lecturer, Chair of Software Engineering, ETH Zurich,
since Fall 2005 |
I have also done work with Mike Furr, James Rose and Jaime Spacco.
Research
I am currently working on a number projects.
| Ginseng (students: Iulian Neamtiu, Chris Hayden,
Eric Hardisty) - a practical
system for dynamically updating running software. |
| SELinks
(students: Nik Swamy and Brian Corcoran) - a programming language that
supports custom-defined security policies for web applications.
| | LockSmith
(student: Polyvios Pratikakis) - a static analysis tool for proving
the absence of race conditions in C programs, requiring few or no
annotations.
| | Path
Projection (student: Khoo Yit Phang) - an approach to
presenting the results of static analysis tools that accounts for
the user's cognitive process. Path projection is a browser-based
UI toolkit for presenting, navigating, and
querying paths emitted as static analysis results.
| | CMod (student:
Saurabh Srivastava) - A module system for legacy C programs.
| | Measurement-aware Data Transport (student: Pavlos
Papageorgiou). We are exploring ways in which passive and active
measurement schemes can be integrated with transport protocols to
reduce overhead and improve performance.
|
Here are a number of currently-inactive projects, but have some shot at restarting:
| Runtime Kernel Integrity Monitoring (student: Nick Petroni) - a technique for automatically monitoring the integrity of kernel code/control-flow behavior in an effort to detect rootkits.
| | Cyclone
(student: Nik Swamy) - a dialect of C for more reliable and secure
systems programming. A hallmark of Cyclone is type safety combined
with a high degree of control over data layout and memory management.
| | RX
(student: Nik Swamy) - a programming language that supports proving
the absence of illicit information flows in programs while allowing
policies to evolve over time. We are targeting multi-tier web
applications.
| | Transparent Proxies
for Java (students: Polyvios Pratikakis and Jaime Spacco). A
static analysis for adding or checking proxy-based functionality in
Java programs, e.g., to support asynchronous method invocation in
which proxies store
futures---the results of computations not yet
completed.
| | FindLocks
(students: James Rose and Nik Swamy) - a tool for proving the absence
of race conditions in Java programs, which uses dynamic trace data to
aid a sound static analysis.
| | MediaNet
is a distribution network for streaming
data using distributed, adaptive scheduling to provide
Quality-of-Service.
|
Teaching
Professional Activities
I have served (or am serving) on the program committees for
| 2009 | POPL
|
|---|
| 2008 | CCS, CATARS,
COORDINATION
|
|---|
| 2007 | PLAS (general and
program chair), OOPSLA, COORDINATION, PLDI
|
|---|
| 2006 | FTfJP,
PLAS,
SPACE,
OOPS (part of SAC 2006)
|
|---|
| 2005 | SCOOL,
VEE
|
|---|
| 2004 | IWAN, ICPP, FUSE
|
|---|
| 2003 | IWAN, USE
|
|---|
| 2002 | IWAN, USE
|
|---|
| 2001 | IWAN
|
|---|
|
|