Research Areas

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 such as JavaScript, R, Ruby, Python, or Rust. Graal and Truffle started as projects of our institute and are now part of Oracle's GraalVM project (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.
Read more ...

Software Engineering

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.
Read more ....

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 Dynatrace Austria.
Read more ....

Further Projects

See here ...