Aditya has been interested in all aspects of design and analysis of software systems. His work on symbolic analysis of embedded control software received the ACM SIGBED Best Paper Award at EMSOFT 2008. He has done extensive research on concurrency bug finding and verification of event-driven multi-threaded software such as smartphone applications and cloud based distributed systems. His work on, “Race detection for Android applications”, is a main reference on concurrency analysis of Android applications. The tools developed by his research group found several concurrency bugs in industrial and open-source software. Aditya has served on the program committees of leading conferences (POPL, PLDI, ICSE) and on the reviewer board of IEEE Transactions on Software Engineering.
He is fascinated by the prospect of combining automated reasoning with the ability of neural networks to learn from examples. In particular, he is investigating deep learning methods that can learn to reason about program semantics. Towards this, he has developed techniques for automated program repair based on neural machine translation (AAAI’17) and reinforcement learning (AAAI’19).
At Google, he is working on the program synthesis moonshot in the Brain team where the goal is to advance the state-of-the-art in neural approaches to program analysis and synthesis, with the ultimate goal of synthesizing real programs completely automatically. He aims to leverage high-quality software engineering data (source code, edit histories, tests, code reviews) within Google to train neural networks that can have better fundamental understanding of programs and impact the software development processes within Google and outside. Some of this research will be published in an upcoming paper in ICLR'19 on neural program repair.