Using Process Algebra to Statically Analyze Incremental Propagation Graphs

Abstract

Active Operations are a set of operations that can be composed to build incremental bidirectional OCL-like expressions on collections. Each operation is capable of updating its result (resp. source) when a change occurs on its source (resp. result). The current implementation of active operations relies on the Observer design pattern to propagate changes from each operation to its successors. These relations form an implicit directed acyclic propagation graph. Previous work showed that this approach is limited and alignment issues appear in some situations. Several workarounds were proposed to mitigate these issues. In this work we present a new relational notation to describe propagation graphs. Along with this notation, we also present a new static analysis method of the propagation graph based on process algebra. This new method enables optimizations of the propagation graph not achievable with previous approaches, such as detection of parallelizable sections of the propagation graph or cache optimizations in specific situation

    Similar works