Developing a Practical Reactive Synthesis Tool: Experience and Lessons Learned
This work addresses the problem of practical tool adoption for software developers in reactive synthesis, but it is incremental as it builds on existing synthesis technology.
The authors tackled the challenge of making reactive synthesis accessible to software developers by developing Termite, a tool with features like a C-like specification language and interactive debugger, and identified caveats from real-world applications to guide future research.
We summarise our experience developing and using Termite, the first reactive synthesis tool intended for use by software development practitioners. We identify the main barriers to making reactive synthesis accessible to software developers and describe the key features of Termite designed to overcome these barriers, including an imperative C-like specification language, an interactive source-level debugger, and a user-guided code generator. Based on our experience applying Termite to synthesising real-world reactive software, we identify several caveats of the practical use of the reactive synthesis technology. We hope that these findings will help define the agenda for future research on practical reactive synthesis.