Doctoral Candidate (Ph.D.)
Department of Computer Science and Automation,
Indian Institute of Science,
Bangalore - 560012.
email: [[lastname]].[[firstname]]@gmail.com
I am was a graduate student at Department of Computer Science and Automation at the Indian Institute of Science, Bangalore (I defended my PhD thesis in 2017, and am currently working in Snowflake). This page collects research papers published during my PhD.
I worked in the Software Engineering and Analysis Lab (SEAL), advised by Dr. Aditya Kanade.
My research uses program analysis to support concurrency bug detection, programming education and software engineering activities.
I completed my Masters (M.E., Computer Science and Automation) from IISc in 2011, and was awarded the CSI Medal for Best Student. I obtained a B.Tech degree in Computer Science and Engineering from the National Institute of Technology, Karnataka in 2009. My research is supported by an IBM PhD fellowship (2014-2015).
My PhD thesis: Concurrency Analysis and Mining Techniques for APIs
Here is my (likely out of date) CV.
Publications
Static Deadlock Detection for Asynchronous C# Programs (A. Santhiar and A. Kanade)
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '17)
Semi-supervised Verified Feedback Generation (S. Kaleeswaran, A. Santhiar, A. Kanade and S. Gulwani)
ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE '16)
Efficient Race Detection in the Presence of Programmatic Event Loops (A. Santhiar, S. Kaleeswaran and A. Kanade)
International Symposium on Software Testing and Analysis (ISSTA '16)
Mining Unit Tests for Discovery and Migration of Math APIs (A. Santhiar, O. Pandita and A. Kanade)
ACM Transactions on Software Engineering and Methodology (TOSEM '14)
Discovering Math APIs by Unit Test Mining (A. Santhiar, O. Pandita and A. Kanade)
16th International Conference on Fundamental Approaches to Software Engineering (FASE '13)
Tools
Along with collaborators, I have developed and open-sourced the following tools as a part of my research:
MathFinder is an Eclipse plugin supported by a unit test mining backend for discovering and migrating math APIs. It is intended to make (re)implementing math algorithms in Java easier. Given a math expression, it returns a pseudo-code snippet involving calls to suitable Java APIs.
SparseRacer is a race detection tool for software that employs programmatic event loops. It takes an execution trace of the software as input and returns a list of all use-free and/or data races in the trace, by computing the happens-before relation for the input trace. For technical details, please go through our ISSTA 2016 paper "Efficient Race Detection in the Presence of Programmatic Event Loops". This tool helped uncover 13 previously unknown use-after-free bugs in KDE applications (details here).
CoderAssist is an implementation of the feedback generation methodology described in our FSE 2016 paper "Semi-Supervised Verified Feedback Generation". For technical details, please go through our paper (mentioned above). Besides providing correct feedback to the challenging class of dynamic programming assignments submitted by students automatically, this tool helped demonstrate that 265 student submissions tagged by CodeChef as correct were actually faulty.
DeadWait is a static deadlock detection tool for asynchronous C# programs. DeadWait is based on our PLDI'17 paper. This tool helped uncover 43 previously unknown deadlocks in asynchronous C# libraries. The bugs arise because of unforeseen interactions between synchronous waiting and asynchronous waiting (await).
Teaching
I have been a TA for these courses:
Automated Verification (Spring '11, '12, '14)
Algorithms and Programming (Fall '13, Fall '14) [recitation instructor]
Program Analysis and Verification (Fall '10)
Funding
I am grateful for funding from the following sources:
Ministry of Human Resources Development, Government of India
IBM India (for a PhD fellowship)
Google India and SIGPLAN for travel grants to PLDI '17
Google India and Microsoft Research India for travel grants for ISSTA '16
SIGSOFT CAPS for a travel grant to attend FSE '16
IARCS for a travel grant to travel to FASE '13 and PLDI '17
In addition, I am grateful to bitbucket for hosting our source code.