My interests are in the broad area of Formal Methods, Artificial Intelligence, Software Engineering and Programming Languages.
Programs, today, are more than C/C++ code that we knew about---Software 2.0 is has penetrated deep into today's systems. The cool idea that PL/SE researchers use is that machine learning models are also programs.
Our group attempts to design new algorithms and develop automated tools to answer the following questions for both (conventional) programs as well as for machine learnt models:
Analysis: What interesting properties hold on this program/model?
Verification: Is this program correct?
Optimization: Can the program run faster?
Testing: Can we produce an input to make the program fail?
Synthesis: Can we automatically create a program for this given task?
Profiling: What interesting properties frequently hold on this program?
Debugging: What is the bug in the program?
Robustness: Can a small purturbation in the input cause a large deviation in the output?
Interpretability: What does this machine learnt model actually do?
Towards solving these problems, we use formal methods (logic, automata theory, compiler design) and data-driven techniques (machine learning, artificial intelligence, statistics).