Thu 6 Apr 2017 16:30 - 17:00 at D0.07 - Research Papers 6 Chair(s): Tijs van der Storm

Modern software development without reactive programming is hard to imagine. Reactive programming favors a wide class of contemporary software systems that respond to user input, network messages, and other events.

While reactive programming is an active field of research, the implementation of reactive concepts remains challenging. In particular, change detection represents a hard but inevitable necessity when implementing reactive concepts. Typically, change detection mechanisms are not intended for reuse but are tightly coupled to the particular change resolution mechanism. As a result, developers often have to re-implement similar abstractions. A reusable primitive for change detection is still missing.

To find a suitable primitive, we identify commonalities in existing reactive concepts. We discover a class of reactive concepts, state-based reactive concepts. All state-based reactive concepts share a common change detection mechanism: they detect changes in the evaluation result of an expression.

On the basis of the identified common change detection mechanism, we propose active expressions as a reusable primitive. By abstracting the tedious implementation details of change detection, active expressions can ease the implementation of reactive programming concepts.

We evaluate the design of active expressions by re-implementing a number of existing state-based reactive concepts using them. The resulting implementations highlight the expressiveness of active expressions.

Active expressions enable the separation of essential from non-essential parts when reasoning about reactive programming concepts. By using active expressions as a primitive for change detection, developers of reactive language constructs and runtime support can now focus on the design of how application programmers should be able to react to change. Ultimately, we would like active expressions to encourage experiments with novel reactive programming concepts and with that to yield a wider variety of them to explore.

Thu 6 Apr

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

15:30 - 17:00
Research Papers 6Research Papers at D0.07
Chair(s): Tijs van der Storm CWI
15:30
30m
Talk
The pragmatics of clone detection and elimination
Research Papers
Simon Thompson , Huiqing Li University of Kent, Andreas Schumacher Ericsson AB
Link to publication DOI
16:00
30m
Talk
Does Python Smell Like Java?
Research Papers
Nicole Vavrová University of Amsterdam, Netherlands, Vadim Zaytsev Raincode, Belgium
Link to publication DOI
16:30
30m
Talk
Active Expressions: Basic Building Blocks for Reactive Programming
Research Papers
Stefan Ramson Hasso Plattner Institute, Potsdam, Robert Hirschfeld HPI
Link to publication DOI