Pic

My research and teaching interests are in programming languages, automated reasoning, and software engineering. The role, scale, and nature of software that affects our lives is ever changing. The goal of my research is to develop tools and techniques to improve the reliability and performance of software systems. My current research aims to develop explainable and scalable program analysis—tools that I would have wanted while I was working in the industry. Furthermore, the nature of software engineering is changing, spurred by the adoption of practical machine-learning systems; this change requires exploring fundamentally new ways of developing, verifying, and deploying software.

I am looking for highly-motivated Ph.D. students to work on challenging research problems in the areas of programming languages, automated reasoning, and program analysis with applications to security, machine learning, and software engineering; if interested, please send me an email with a description of your research interests and your CV.

Publications

Google Scholar / DBLP

  1. Path-Based Function Embedding and Its Application to Error-Handling Specification Mining
    Proceedings of the 26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE’18) , 2018
    PDF     Details
  2. Path-Based Function Embeddings
    Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings, ICSE 2018, 2018
    PDF     ACM©     Details
  3. Scaling up Superoptimization
    Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2016
    PDF     ACM©     Details
  4. GreenThumb: superoptimizer construction framework
    Proceedings of the 25th International Conference on Compiler Construction (CC), 2016
    PDF     ACM©     Details
  5. Automating Abstract Interpretation
    17th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI), 2016
    Invited paper
    PDF     Springer©     Details
  6. Satisfiability modulo abstraction for separation logic with linked lists
    2014 International Symposium on Model Checking of Software (SPIN), 2014
    PDF     ACM©     Details
  7. Property-Directed Shape Analysis
    26th International Conference on Computer Aided Verification (CAV), 2014
    PDF     Springer©     Details
  8. Through the Lens of Abstraction
    High Confidence Software and Systems Conference (HCSS), 2014
    PDF     Details
  9. PostHat and all that: Automating abstract interpretation
    Fourth Workshop on Tools for Automatic Program Analysis (TAPAS), 2013
    PDF     Details
  10. A Generalization of Stålmarck’s Method
    19th International Symposium on Static Analysis (SAS), 2012
    PDF     Springer©     Details
  11. Bilateral Algorithms for Symbolic Abstraction
    19th International Symposium on Static Analysis (SAS), 2012
    PDF     Springer©     Details
  12. OpenNWA: A Nested-Word Automaton Library
    24th International Conference on Computer Aided Verification (CAV), 2012
    PDF     Springer©     Details
  13. A Method for Symbolic Computation of Abstract Operations
    24th International Conference on Computer Aided Verification (CAV), 2012
    PDF     Springer©     Details
  14. Instrumentation and sampling strategies for cooperative concurrency bug isolation
    Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2010
    PDF     ACM©     Details
  15. There’s Plenty of Room at the Bottom: Analyzing and Verifying Machine Code
    22nd International Conference on Computer Aided Verification (CAV), 2010
    Invited paper
    PDF     Springer©     Details
  16. Directed Proof Generation for Machine Code
    22nd International Conference on Computer Aided Verification (CAV), 2010
    PDF     Springer©     Details
  17. Proofs from Tests
    IEEE Transactions on Software Engineering (TSE), 2010
    PDF     IEEE©     Details
  18. The Yogi Project: Software Property Checking via Static Analysis and Testing
    15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), 2009
    PDF     Springer©     Details
  19. Cooperative crug isolation
    Proceedings of the International Workshop on Dynamic Analysis (WODA), 2009
    PDF     ACM©     Details
  20. Comprehensive path-sensitive data-flow analysis
    Sixth International Symposium on Code Generation and Optimization (CGO), 2008
    PDF     ACM©     Details

Teaching

Spring 2018 ECS 140A Programming Languages (Undergraduate)
Fall 2018 ECS 240 Programming Languages (Graduate)
Fall 2017 Topics in Automated Reasoning and Program Analysis

Recent Service

PC ASE 2018
PC ATVA 2018
ERC PLDI 2016

Students

Daniel DeFreez (Ph.D.)
Sung Kook Kim (Ph.D.)
Zaid Al Rakabi (Undergrad.)
Scott Reichelt (Undergrad.)
James Sun (Undergrad.)
Xinyuan Sun (Undergrad.)

Past Students

Mohamed Alkaoud (M.S.)
Jonathan Castello (M.S.)
Dana Iltis (M.S.)
Max Nedorezov (Undergrad.)

Theses

  1. Thakur, A. V. (2014, August). Symbolic Abstraction: Algorithms and Applications (Ph.D. dissertation). Computer Sciences Department, University of Wisconsin, Madison.
    PDF     Details
  2. Thakur, A. V. (2008, August). Comprehensive Path-sensitive Data-flow Analysis (M.Sc.(Engg.) thesis). Indian Institute of Science, Bangalore.
    PDF     Details