@inproceedings{mangal2015a, author = {Mangal, Ravi and Zhang, Xin and Naik, Mayur and Nori, Aditya}, title = {A User-Guided Approach to Program Analysis}, booktitle = {Foundations of Software Engineering (FSE)}, year = {2015}, month = {August}, abstract = {Program analysis tools often produce undesirable output due to various approximations. We present an approach and a system \system\ that allows user feedback to guide such approximations towards producing the desired output. We formulate the problem of user-guided program analysis in terms of solving a  combination of hard rules and soft rules: hard rules capture soundness while soft rules capture degrees of approximations and preferences of users. Our technique solves the rules using an off-the-shelf solver in a manner that is sound (satisfies all hard rules), optimal (maximally satisfies soft rules), and scales to real-world analyses and programs. We evaluate EUGENE on two different analyses with labeled output on a suite of seven Java programs of size [131]--[198] KLOC. We also report upon a user study involving nine users who employ EUGENE to guide an information-flow analysis on three Java micro-benchmarks. In our experiments, EUGENE significantly reduces misclassified reports upon providing limited amounts of feedback.}, publisher = {ACM - Association for Computing Machinery}, url = {http://approjects.co.za/?big=en-us/research/publication/a-user-guided-approach-to-program-analysis/}, edition = {Foundations of Software Engineering (FSE) - ACM SIGSOFT Distinguished Paper}, note = {ACM SIGSOFT Distinguished Paper}, }