About Us

PROLANGS@VT researches 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, locate bugs, and improve performance in their applications. We have implemented these analyses in tools for modern object-oriented programming languages such as Java and JavaScript and collaborated with industrial partners to evaluate our methodologies on real, production systems.

Specific recent projects included:
  1. semantic change impact analysis for Java programs within an integrated development environment (Eclipse) including techniques for finding fault-inducing changes in Java codes; algorithms for establishing safe early commits of edits, even in the presence of failing tests; and methods for using change impact feedback for decision making in a collaborative test-driven development process;

  2. blended static+dynamic analyses, including performance diagnosis and program understanding of framework-intensive web application software, and enhanced software security analysis of Java systems.

  3. Our most recent work applies blended static+dynamic analysis to dynamic programming languages, initially JavaScript, to solve problems in security, program understanding and performance.