|
I am an assistant professor in the Computer Science Department and UMIACS, and an affiliate assistant
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 the
programming language
research group here at Maryland.
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.
Students
I am the research supervisor for a number of students:
I have also done work with James Rose and Jaime Spacco. Manuel Oriol worked with
me as a post-doctoral researcher during 2004-2005.
Research
I am currently working on a number projects.
| Dynamic
Software Updating (students: Iulian Neamtiu and Chris Hayden) - a practical
system for dynamically updating running software. |
| LockSmith
(student: Polyvios Pratikakis) - a static analysis tool for proving
the absence of race conditions in C programs, requiring few or no
annotations.
| | 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.
| | 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.
| | 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:
| 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.
| | 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
|
|