During the course of research, we have developed and released the following software.

Machine/Deep Learning for Programs

  1. DeepFix: Fixing common C language errors by deep learning
    For technical details, see our AAAI'17 paper.
  2. CoderAssist: Semi-supervised verified feedback generation for programming assignments 
    For technical details, see our FSE'16 paper.
  3. MintHint: Automated synthesis of repair hints 
    For technical details, see our ICSE'14 paper.
  4. MathFinder: Math API discovery and migration 
    For technical details, see our FASE'13 and TOSEM'14 papers.

Concurrency and Distribution

  1. EM-Explorer: A proof-of-concept stateless model checker for concurrent Android applications
    For technical details, see our TACAS'16 paper.
  2. SparseRacer: Efficient race detection for programmatic event loops 
    For technical details, see our ISSTA'16 paper.
    SparseRacer found several new faults in real applications which have been confirmed and even fixed by the developers. See practical impact for more details.
  3. DroidRacer: Dynamic race detection for Android applications 
    For technical details, see our PLDI'14 paper.

Program Analysis and Formal Methods

  1. Symbolic simulation and test generation for Matlab Simulink/Stateflow 
    For technical details, see our EMSOFT'08 and CAV'09 papers.
  2. SPOTS: A system for proving optimizing transformations sound 
    For technical details, see our SEFM'06, ENTCS'07 and SPE'09 papers.