• Programming Languages and Analysis, Compilation, Software Engineering o specification and protocol inference for concurrent programs o scalable path- and flow-sensitive program analyses o design and implementation of high-level functional abstractions for parallel and distributed computing o debugging and testing of shared-memory and message-passing concurrent programs o deterministic parallelism and safe futures o verifying compilation and relaxed memory • Multicore and Distributed Systems o software transactional memory o compiler optimizations o dynamic program analysis and profiling o software-based speculation o sensor networks