Demo Data from EDBT 2026 / reviewers in the wild / expert
Roland Schatz
dblp:49/2906
· DBLP profile ↗
9ranked-venue papers
0as first author
1since 2021 · last 2026
0009-0006-3100-8816ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 6 · 1 since 2021Systems, architecture and hardware · 3Applied, interdisciplinary, general and emerging computing · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
2 papers |
Program analysis · 44% Programming languages and type systems · 35% Runtime systems and virtual machines · 22% | |
| Network and information security
1 paper |
Systems and software security · 100% |
Topics — the 8 heaviest of 8, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Systems and software security › memory safety
buffer overflow |
0.3 | 1 | 2018 | Sulong, and Thanks for All the Bugs: Finding Errors in C Programs by Abstracting from the Native Execution Model · ASPLOS 2018 |
Systems and software security
memory safety |
0.3 | 1 | 2018 | Sulong, and Thanks for All the Bugs: Finding Errors in C Programs by Abstracting from the Native Execution Model · ASPLOS 2018 |
Program analysis
dynamic analysis |
0.3 | 1 | 2018 | Sulong, and Thanks for All the Bugs: Finding Errors in C Programs by Abstracting from the Native Execution Model · ASPLOS 2018 |
Runtime systems and virtual machines
dynamic compilation |
0.3 | 1 | 2018 | Cross-Language Interoperability in a Multi-Language Runtime · ACM Trans. Program. Lang. Syst. 2018 |
Programming languages and type systems › interoperability
language interoperability |
0.3 | 1 | 2018 | Cross-Language Interoperability in a Multi-Language Runtime · ACM Trans. Program. Lang. Syst. 2018 |
Program analysis › dynamic analysis
memory error detection |
0.3 | 1 | 2018 | Sulong, and Thanks for All the Bugs: Finding Errors in C Programs by Abstracting from the Native Execution Model · ASPLOS 2018 |
Programming languages and type systems
language implementation |
0.1 | 1 | 2018 | Cross-Language Interoperability in a Multi-Language Runtime · ACM Trans. Program. Lang. Syst. 2018 |
Programming languages and type systems
language semantics |
0.1 | 1 | 2018 | Sulong, and Thanks for All the Bugs: Finding Errors in C Programs by Abstracting from the Native Execution Model · ASPLOS 2018 |
Methods — techniques the papers use, named apart from their topics
intermediate representation · 0.3generic access · 0.3dynamic compilation · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | To Compile or Not To Compile: Evaluating Static Heuristics to Reduce Binary Size of Hybrid Execution Systems
Christoph Pichler, Bernhard Urban-Forster, Paley Li, Roland Schatz, Stefan Marr |
MPLR | 4 |
| 2019 | Supporting on-stack replacement in unstructured languages by loop reconstruction and extractionabstractOn-stack replacement (OSR) is a common technique employed by dynamic compilers to reduce program warm-up time. OSR allows switching from interpreted to compiled code during the execution of this code. The main targets are long running loops, which need to be represented explicitly, with dedicated information about condition and body, to be optimized at run time. Bytecode interpreters, however, represent control flow implicitly via unstructured jumps and thus do not exhibit the required high-level loop representation. To enable OSR also for jump-based - often called unstructured - languages, we propose the partial reconstruction of loops in order to explicitly represent them in a bytecode interpreter. Besides an outline of the general idea, we implemented our approach in Sulong, a bytecode interpreter for LLVM bitcode, which allows the execution of C/C++. We conducted an evaluation with a set of C benchmarks, which showed speed-ups in warm-up of up to 9x for certain benchmarks. This facilitates execution of programs with long-running loops in rarely called functions, which would yield significant slowdown without OSR. While shown with a prototype implementation, the overall idea of our approach is generalizable for all bytecode interpreters. Raphael Mosaner, David Leopoldseder, Manuel Rigger, Roland Schatz, Hanspeter Mössenböck |
MPLR | 4 |
| 2018 | Sulong, and Thanks for All the Bugs: Finding Errors in C Programs by Abstracting from the Native Execution ModelabstractIn C, memory errors, such as buffer overflows, are among the most dangerous software errors; as we show, they are still on the rise. Current dynamic bug-finding tools that try to detect such errors are based on the low-level execution model of the underlying machine. They insert additional checks in an ad-hoc fashion, which makes them prone to omitting checks for corner cases. To address this, we devised a novel approach to finding bugs during the execution of a program. At the core of this approach is an interpreter written in a high-level language that performs automatic checks (such as bounds, NULL, and type checks). By mapping data structures in C to those of the high-level language, accesses are automatically checked and bugs discovered. We have implemented this approach and show that our tool (called Safe Sulong) can find bugs that state-of-the-art tools overlook, such as out-of-bounds accesses to the main function arguments. Manuel Rigger, Roland Schatz, René Mayrhofer, Matthias Grimmer, Hanspeter Mössenböck |
ASPLOS | 2 |
| 2018 | Cross-Language Interoperability in a Multi-Language RuntimeabstractIn large-scale software applications, programmers often combine different programming languages because this allows them to use the most suitable language for a given problem, to gradually migrate existing projects from one language to another, or to reuse existing source code. However, different programming languages have fundamentally different implementations, which are hard to combine. The composition of language implementations often results in complex interfaces between languages, insufficient flexibility, or poor performance. We propose TruffleVM, a virtual machine (VM) that can execute different programming languages and is able to compose them in a seamless way. TruffleVM supports dynamically-typed languages (e.g., JavaScript and Ruby) as well as statically typed low-level languages (e.g., C). It consists of individual language implementations, which translate source code to an intermediate representation that is executed by a shared VM. TruffleVM composes these different language implementations via generic access . Generic access is a language-agnostic mechanism that language implementations use to access foreign data or call foreign functions. It features language-agnostic messages that the TruffleVM resolves to efficient foreign-language-specific operations at runtime. Generic access supports multiple languages, enables an efficient multi-language development, and ensures high performance. We evaluate generic access with two case studies. The first one explains the transparent composition of JavaScript, Ruby, and C. The second one shows an implementation of the C extensions application programming interface (API) for Ruby. We show that generic access guarantees good runtime performance. It avoids conversion or marshalling of foreign objects at the language boundary and allows the dynamic compiler to perform its optimizations across language boundaries. Matthias Grimmer, Roland Schatz, Chris Seaton, Thomas Würthinger, Mikel Luján |
ACM Trans. Program. Lang. Syst. | 2 |
| 2015 | High-performance cross-language interoperability in a multi-language runtimeabstractProgrammers combine different programming languages because it allows them to use the most suitable language for a given problem, to gradually migrate existing projects from one language to another, or to reuse existing source code. However, existing cross-language mechanisms suffer from complex interfaces, insufficient flexibility, or poor performance. We present the TruffleVM, a multi-language runtime that allows composing different language implementations in a seamless way. It reduces the amount of required boiler-plate code to a minimum by allowing programmers to access foreign functions or objects by using the notation of the host language. We compose language implementations that translate source code to an intermediate representation (IR), which is executed on top of a shared runtime system. Language implementations use language-independent messages that the runtime resolves at their first execution by transforming them to efficient foreign-language-specific operations. The TruffleVM avoids conversion or marshaling of foreign objects at the language boundary and allows the dynamic compiler to perform its optimizations across language boundaries, which guarantees high performance. This paper presents an implementation of our ideas based on the Truffle system and its guest language implementations JavaScript, Ruby, and C. Matthias Grimmer, Chris Seaton, Roland Schatz, Thomas Würthinger, Hanspeter Mössenböck |
DLS | 3 |
| 2014 | Behavioral model synthesis of PLC programs from execution tracesabstractDynamic program analysis is a technique which records a program execution for the purpose of analyzing its behavior and building high-level models and views. This paper presents an approach to build a high-level model of the behavior of a PLC program component as observed in a program execution. Based on a deterministic record and replay technique, a model is synthesized which represents the transition behavior, timing information, and input output behavior of the component. Then this model can be used to check other executions of the same or similar programs for compliance with the model. We present the synthesis techniques and two variants of trace analysis algorithms. Herbert Prähofer, Roland Schatz, Andreas Grimmer |
ETFA | 2 |
| 2013 | Monaco - A domain-specific language solution for reactive process control programming with hierarchical components
Herbert Prähofer, Roland Schatz, Christian Wirth 0002, Dominik Hurnaus, Hanspeter Mössenböck |
Comput. Lang. Syst. Struct. | 2 |
| 2012 | A tool for trace visualization and offline debugging of PLC applicationsabstractThis paper describes a tool for offline debugging and trace visualization of PLC applications. Based on trace data obtained by a deterministic replay technology for multi-threaded Soft PLC applications, the tool allows visualizing an application run in its various aspects and on various levels of abstraction. Each view shows a different level of detail, allowing the user to dive into the program from high-level views showing abstract program behavior to low-level views showing each executed statement or variable value in detail. With a set of views the tool supports the user to get an overview of the program execution, to identify abnormal program behavior, to discover the causes for program failures, and finally to locate defects in the source code. The paper presents the conceptional background of the approach, shows how program runs can be visualized, and how they can be analysed in detail. Then it demonstrates how the the tool supports a debugging process by an illustrative example. Richard Berger, Herbert Prähofer, Christian Wirth 0002, Roland Schatz |
ETFA | 4 |
| 2011 | A Comprehensive Solution for Deterministic Replay Debugging of SoftPLC ApplicationsabstractDeterministic replay debugging is an approach to finding bugs in deployed software. It records an application run in the field so that it can deterministically be replayed offline in a development system for debugging purposes. To enable deterministic replay debugging, it is necessary to record all external influences and sources of nondeterminism in the original program run. From that trace log and from a known initial state, the program can be replayed deterministically without requiring any connection to the original environment. In this paper, we present a solution for deterministic replay debugging of hard real-time multitasking SoftPLC applications written in the IEC 61131-3 languages. By taking advantage of the special properties of these programs and by careful engineering, our technique allows recording a SoftPLC application run in the field with minimal overhead and obeying real-time constraints. In later phases, which are offline, the original program run is reconstructed from the minimal information recorded so it can be replayed for debugging. In comparison to previous work, our solution has several advantages: Instead of recording task scheduling information, it reconstructs the task interleaving based on data dependencies, thereby significantly simplifying the recording phase. Additionally, it incorporates a technique for periodically capturing the complete internal state of the system, which can later be used as a starting point for replay. We present the conceptual basis of our approach, a tool chain which provides deterministic replay debugging to the user as a set of fully automated tools, and an evaluation as well as an industrial case study for validating the approach. Herbert Prähofer, Roland Schatz, Christian Wirth 0002, Hanspeter Mössenböck |
IEEE Trans. Ind. Informatics | 2 |