Roopsha Samanta

Assistant Prof. of Computer Science,Purdue University

Photo of Roopsha Samanta

Computer-aided Concurrent Programming

Concurrent programs are notoriously difficult to write, verify, and debug. Concurrency bugs are as commonplace as concurrent programs themselves, and often arise due to subtle synchronization errors. This makes concurrent programs excellent targets for computer-aided programming, and, in particular, for automated generation of synchronization code.

Unsurprisingly, synchronization synthesis has been a long-standing interest in the formal methods and programming languages community since the early 1980s. An interesting piece of history is that the seminal 1981 paper of Clarke and Emerson, which founded the highly successful area of model checking (recognized with a Turing Award in 2007), was, in fact, a paper on synthesis of synchronization from temporal logic specifications. The community has come a long way since then, with several practical and scalable solutions for synthesis of synchronization and coordination for concurrent and distributed programs.

In this talk, Roopsha will highlight some of these contributions, with an emphasis on recent advances in a trace-based approach that is applicable to device driver programming. She will end the talk with a preview of an ongoing project on parameterized synthesis of coordination for distributed applications.



Roopsha Samanta (@roopshasamanta) is an Assistant Professor in the Department of Computer Science at Purdue University. Her research mission is to make it easier for people to build provably reliable programs. Her research focuses on developing algorithms and tools for automated program repair and synthesis, and targets diverse application domains such as concurrent and distributed systems, personalized education and machine learning.

Roopsha completed her Ph.D. at The University of Texas at Austin in 2013 and was a postdoctoral researcher at the Institute of Science and Technology Austria (IST Austria) from 2014-2016.