Research Laboratory - Programming Languages and Systems Laboratory
The theme of the Programming Languages and Systems lab is to develop new programming languages and environments for producing robust and efficient software applications. The lab specializes in complex programming features such as pointers, dynamically allocated data structures, and multithreading.
The lab develops profiling (runtime) algorithms that provide information on the dynamic behavior of the program in a given run, and static (compile-time) algorithms which provide information on the way the program behaves on all inputs. The information can be employed by programmers, e.g., to detect bugs and to verify that the program is partially correct according to a certain criteria. The information can also be utilized by an optimizing compiler to yield more efficient executable code. Some of these algorithms have already been implemented for programs in C and Java. Detected example errors include memory-leaks, deadlocks, and string related errors.