The current research activities of the Institute for System Software focus on:
Programming Languages, Compilers and Virtual Machines
This is a long-term research cooperation with Oracle Labs in which we work
on dynamic compiler optimizations and self-optimizing execution environments. The current focus is on the
Graal compiler, an aggressively optimizing JIT compiler
using run-time feedback, as well as on Truffle,
a language implementation framework based on self-optimizing AST interpreters with subsequent JIT compilation by Graal.
Truffle has been used by us and others to implement highly efficient execution environments for dynamically-typed languages
(see also GitHub and Wikipedia).
We also contributed to Oracle's Java HotSpot VM (e.g., SSA-based IR,
Linear-scan register allocation, escape analysis, GC optimizations) that is now used throughout the world by the Java community.
The institute has been working on methods and tools for improving software engineering techniques and practices for many years. Previous research comprises work on domain-specific languages and component-based systems as well as object-oriented architectures and design patterns. Currently we are focusing on static program analysis for program comprehension and improving the quality of software systems (see e.g. our work on static analysis of PLC software) and on feature-based software development methods. A larger research project in this area is a cooperation project with the Christian Doppler Laboratory MEVSS and Keba AG with the goal of creating a feature-based environment for distributed software development and evolution in industrial software ecosystems, which is also backed by configuration-aware program analysis techniques.
Java Performance Monitoring
We are working on efficient techniques for monitoring the run-time behavior of Java applications. By integrating our
techniques into a modified version of the Java HotSpot VM we gain efficient access to information that is otherwise not available
outside the VM. For example, we developed efficient approaches for method profiling, lock profiling and memory profiling.
The overhead is small enough (mostly well below 10%) so that our approaches can be used also in production systems.
The project was performed in a Christian Doppler Laboratory in cooperation with