Fair reactive programming

Andrew Cave, Francisco Ferreira, Prakash Panangaden, Brigitte Pientka
2014 Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - POPL '14  
Functional Reactive Programming (FRP) models reactive systems with events and signals, which have previously been observed to correspond to the "eventually" and "always" modalities of linear temporal logic (LTL). In this paper, we define a constructive variant of LTL with least fixed point and greatest fixed point operators in the spirit of the modal mu-calculus, and give it a proofs-asprograms interpretation in the realm of reactive programs. Previous work emphasized the propositions-as-types
more » ... art of the correspondence between LTL and FRP; here we emphasize the proofsas-programs part by employing structural proof theory. We show that this type system is expressive enough to enforce liveness properties such as the fairness of schedulers and the eventual delivery of results. We illustrate programming in this language using (co)iteration operators. We prove type preservation of our operational semantics, which guarantees that our programs are causal. We give also a proof of strong normalization which provides justification that the language is productive and that our programs satisfy liveness properties derived from their types.
doi:10.1145/2535838.2535881 dblp:conf/popl/CaveFPP14 fatcat:ykenrlzj3vegtmlmspvdorgg5a