Synthesizing Functional Reactive Programs
We present the first method to synthesize functional reactive programs from temporal logic specifications. Existing algorithms for the synthesis of reactive systems target finite-state implementations, such as hardware circuits, but fail when it comes to complex data transformations. Reactive programs instead provide a promising alternative to overcome this obstacle. They allow for abstraction from concrete implementations of data transformations while shifting focus to the higher order control of data. In Functional Reactive Programming (FRP), this separation of control and data is even made strict, as it makes for a fundamental building block of its well defined operational semantics. In this paper we define the theoretical foundations and implement the first tool for the construction of data-intensive functional reactive programs from temporal logic specifications. We introduce Temporal Stream Logic (TSL) which allows for the specification of control, but abstracts from actual data. Given a specification in TSL, our synthesis procedure constructs an FRP program that is guaranteed to implement the specified control. We report on experience with our framework and tool implementation on a collection of both new and existing synthesis benchmarks.
READ FULL TEXT