Most of our work combines basic research and development of prototype tools. We build these tools to experimentally evaluate our algorithms and to identify opportunities for new results. The tools are generally prototypes intended for research and teaching, not for production use, and they are openly available to facilitate reuse and collaboration:
- TIP - an implementation of many essential static analysis techniques, designed for teaching purposes
- GOAT - analyzing Go program to detect blocking errors
- TAJS - type analysis for JavaScript
- Artemis - automated testing for JavaScript
- EventRaceCommander - repairing event race errors in web applications
- Goodenough - analyzing test completeness for Dart
- Thor - testing for Android
- R4 - stateless model checking for JavaScript web applications
- InitRacer and AjaxRacer - practical initialization race detection for JavaScript web applications
- Zipper and Scaler - precise and fast pointer analysis
- JSRefactor - refactoring for JavaScript
- TSCheck, TSInfer, TSEvolve, TSTest - finding bugs in TypeScript declaration files
- WARlord - program analysis for Servlets/JSP/Struts
- XACT - type-safe XML transformations
- JWIG - high-level Web programming
- JSA - string analysis for Java
- dk.brics.automaton - a popular Java library for finite-state automata operations