About Us

PROLANGS@VT does research in analysis-based approaches to solving real software engineering problems. We have developed static, dynamic and hybrid analyses to help engineers maintain code, find security problems, localize bugs, and improve application performance. We have implemented these analyses in tools for modern object-oriented programming languages (e.g., Java and JavaScript), and collaborated with industrial partners to evaluate our methodologies on real, production systems.

Recently, we have concentrated on new program analysis techniques for JavaScript, emphasizing program understanding and security issues, and on using analysis techniques to recognize malware in Android applications.

Contributions include:

  1. development of a diagnostic technique to find sources of imprecision in JavaScript analysis,
  2. exploration of static and dynamic properties of JavaScript programs, especially the dynamic features (SPE 2016),
  3. a dynamic characterization of Android applications through light-weight profiling, including a study of the call patterns between user code, SDK and third-party libraries,
  4. a unified framework of program anomaly detection methods (RAID 2015),
  5. probabilistic modeling for high-precision anomaly classification with the STILO tool using improved HMM-based anomaly detection (CSFS 2015),
  6. design and empirical experience with a new approach to context-sensitive analyses of JavaScript programs that performs method-specific selection of context sensitivity elements for improved analysis precision (ECOOP 2015),
  7. design and empirical experience with a new partially-flow-sensitive, context-sensitive static analysis for a more accurate region-specific points-to analysis for JavaScript programs (ECOOP 2014).