Stefan Rieger

Learn More
In this report we study the effect of an optimizing algorithm for straight–line code which first constructs a directed acyclic graph representing the given program and then generates code from it. We show that this algorithm produces optimal code with respect to the classical transformations such as Constant Folding, Common Subexpression Elimination, and(More)
Techniques for the verification of elementary properties of concurrent pointer programs are indispensable. Programming with pointers is error–prone with potential pitfalls such as dereferencing null pointers and the creation of memory leaks. Pointer programming becomes even more vulnerable in a concurrent setting where data structures such as linked lists(More)
The graphical modelling languages UML and SysML, nowadays widely used in industry, integrate different modelling concepts and notations in one standardised framework. However, they lack a clearly defined, unambiguous semantics and thus their formal verification represents a challenge. On the other hand, current safety standards, including ISO 26262, demand(More)
We present a new abstraction method for heap structures that is based on hyperedge replacement grammars. We use labeled hy-pergraphs as abstract representation of heap structures. A given hyper-graph replacement grammar induces a set of concrete heap structures from a hypergraph. Our technique allows to abstract and concretize the heap partially. Thus the(More)