Lightning Talk: On Modularity and Composition of Aspects (Somayeh Malakuti)
Runtime enforcement techniques are introduced to check the correctness of software in its actual execution environment. Here, the active execution trace of software is verified against the specified properties of the software. If the actual behavior of the software does not comply with the specified properties, the causes of the failure are dynamically diagnosed and respectively recovery actions are performed to enforce the properties.
We regard events, actions and compositions as the core elements in the runtime enforcement domain; and to effectively implement a runtime enforcement technique using a programming language, we claim that the programming language must fulfill the following requirements: a) providing dedicated constructs to define primitive event types, composite event types, actions and compositions, and extendibility with these constructs; b) supporting modularization for event types, actions and compositions; and c) supporting the composition of events and actions such that the composition is closed with respect to events.
There are various programming paradigms, including aspect-oriented programming, that support the notion of events, actions and compositions. However, they fall short in fulfilling these requirements. In this talk, I would like to shortly explain these shortcomings by utilizing runtime enforcement techniques as examples, and outline a solution.