"Concurrency has long been touted as the
"next big thing" and "the way of the future," but for the past 30 years, mainstream software
development has been able to ignore it. Our parallel future has finally arrived: new machines
will be parallel machines, and this will require major changes in the way we develop software.
... But concurrency is hard. Not only are today's languages and tools inadequate to transform
applications into parallel programs, but also it is difficult to find parallelism in mainstream
applications, and--worst of all--concurrency requires programmers to think in a way humans find
H. Sutter and J. Larus.
Software and the Concurrency Revolution.
Queue, 3(7):54-62,September 2005.
In my research, I focus on concurrency. My interests range from theoretical
questions to more practical problems. "How do we capture that two concurrent systems
behave the same so that we can replace the one with the other?" is an example of the
former type of questions. "How do we implement a concurrently data structure
efficiently?" is a problem that falls within the latter category.
Currently, I concentrate on three topics. First of all, I study models and
verification techniques for concurrent systems that contain quantitative
information, like timing or probabilistic information. Secondly, I work
on verification tools for Java. Finally, I work on concurrent data structures such as binary search trees.