My general research interests are in the fields of software engineering, program analysis, and mining source code and bug repositories for program comprehension and defect analysis. In particular, I am interested in developing tools and techniques based on program analyses and repository mining that help programmers understand and build dependable software.

A part of my research focuses on developing techniques to ensure that programs demonstrate intended behavior. More specifically, it is about analyzing programs to ensure that they fail less frequently and if they do, they do it gracefully by reporting the error and possibly also performing the error diagnosis and recovery. The techniques that I develop include static and dynamic program analysis as well as program transformation techniques. In addition to safety properties, I am interested in analyzing programs for security properties, performance, and timing properties.

The other part of my research focuses on program comprehension, defect analysis and code search. We are trying to exploit the knowledge sources available in various forms including source code and bug repositories to improve our understanding of code and defects. This work combines program analysis with mining and information retrieval techniques.

In case you are looking for a PhD position and are interested in any of my research areas, please contact me by sending an email and your CV.

PhD Students

  • Venkatesh Vinayakarao [Prime Minister's Fellow (Partner Company: Microsoft Research, India. Mentor: Dr. Aditya Nori)]
  • Dhriti Khanna (Co-adviser: Dr. Subosh Sharma (IIT-Delhi))
  • Ridhi Jain
  • Devika Sondhi

    Master's Students

  • Amit Semwal
  • Undergraduate Research Students

  • Shuktika Jain
  • Sonia Dalal
  • Vedanshi Kataria
  • Garvita Allabadi
  • Sumit Keswani
  • Ayush Goel
  • Sukrit Kalra
  • Mayank Vachher
  • Udayan Tandon
  • Chaitanya Kumar
  • Gurshabad Grover
  • Shivam Thukral

    Graduated MTech Students

  • Aniya Aggarwal (Currently at IBM IRL, Delhi)
  • Aritra Dhar (Joining ETH, Zurich for his PhD)
  • Samit Anwer (Currently at Citrix, Bangalore)
  • Ambreen Bashir (Currently at NIT, Srinagar)
  • Rohit Mehra (Collaboration with Dr. Vinayak Naik (IIITD)) (Currently at Accenture Labs, Bangalore)
  • Yogesh Kumari (Co-advised with Dr. Aditya Kanade, IISc., Bangalore)
  • Sangeeth K. (Co-advised with Dr. Geoffrey Nelissen and Dr. David Pereira, University of Porto, Portugal)


    Please refer to PAG for the updated list.

  • S. Kalra, A. Goel, D. Khanna, M. Dhawan, S. Sharma and R. Purandare. "POLLUX: Safely Upgrading Dependent Application Libraries", FSE 2016.
  • A. Dhar, R. Purandare, M. Dhawan and R. Suresh, "Clotho: Saving Programs from Malformed Strings and Incorrect String-Handling", ESEC/FSE 2015.
  • V. Vinayakarao, R. Purandare, and A. Nori, "Structurally Heterogeneous Source Code Examples from Unstructured Knowledge Sources", PEPM 2015.
  • S. Anwer, A. Aggarwal, R. Purandare, and V. Naik," Chiromancer: a tool for boosting Android application performance" MOBILESoft 2014.
  • K. Falzon, E. Bodden, and R. Purandare, "Distributed Finite-State Runtime Monitoring with Aggregated Events", RV 2013.
  • R. Purandare, M. Dwyer, and S. Elbaum, "Optimizing Monitoring of Finite State Properties through Monitor Compaction", ISSTA 2013 (Received ACM Distinguished Paper Award).
  • R. Purandare, J. Darsie, S. Elbaum, and M. Dwyer, "Conditional Component Dependence Analysis for Distributed Robotics Software", the Proceedings of the 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems, IROS 2012.
  • R. Purandare, M. Dwyer, and S. Elbaum, "Monitoring Finite State Properties: Approaches and their Relative Strengths", Proceedings of second International Conference on Runtime Verification, RV 2011.
  • M. Dwyer, R. Purandare and S. Person, "Runtime Verification in Context: Can Optimizing Error Detection Improve Fault Diagnosis?", Proceedings of first International Conference on Runtime Verification, RV 2010.
  • R. Purandare, M. Dwyer, and S. Elbaum, "Monitor Optimization via Stutter-Equivalent Loop Transformation", Proceeding of 2010 ACM International Conference on Systems, Programming, Languages and Applications: Software for Humanity, OOPSLA/SPLASH 2010.
  • M. Dwyer and R. Purandare, "Residual Checking of Safety Properties", SPIN 2008.
  • M. Dwyer and R. Purandare, "Residual Dynamic Typestate Analysis : Exploiting Static Analysis Results to Reformulate and Reduce the Cost of Dynamic Analysis", Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, ASE 2007.
  • M. Dwyer, S. Elbaum, S. Person, and R. Purandare, "Parallel Randomized State-space Search," Proceedings of the 28th International Conference on Software Engineering, ICSE 2007.