April 5, 2022
Hannews Kallwies
Dataflow languages have, as well as functional languages, immutable semantics, which is often implemented by copying values. A common compiler optimization known from functional languages involves analyzing which data structures can be modified in-place instead of copying them. In the presentation an algorithm to this so called Aggregate Update Problem for multi-clocked dataflow languages, i.e. those that allow streams to have events at disjoint timestamps, like e.g. Lucid, Lustre and Signal, is presented. Therefor TeSSLa, a generic stream transformation language with a small set of operators, is used to develop the ideas. Finally the empirical results of the implementation of the optimization into the TeSSLa compiler are presented.