Static scheduling of synchronous data flow programs for digital signal processing
IEEE Transactions on Computers
Programming in Martin-Lo¨f's type theory: an introduction
Programming in Martin-Lo¨f's type theory: an introduction
The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
Proceedings of the first ACM SIGPLAN international conference on Functional programming
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Functional reactive programming from first principles
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Synchronous Programming of Reactive Systems
Synchronous Programming of Reactive Systems
Functional reactive programming, continued
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Lambda in Motion: Controlling Robots with Haskell
PADL '99 Proceedings of the First International Workshop on Practical Aspects of Declarative Languages
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
Synchronous Programming of Reactive Systems
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Logic in Computer Science: Modelling and Reasoning about Systems
Logic in Computer Science: Modelling and Reasoning about Systems
Towards a higher-order synchronous data-flow language
Proceedings of the 4th ACM international conference on Embedded software
Modeling user interfaces in a functional language
Modeling user interfaces in a functional language
ACM SIGGRAPH 2005 Electronic Art and Animation Catalog
Lowering: a static optimization technique for transparent functional reactivity
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Safe functional reactive programming through dependent types
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Causal commutative arrows and their optimization
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Push-pull functional reactive programming
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Switched-On Yampa: declarative programming of modular synthesizers
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
Mixed-level embedding and JIT compilation for an iteratively staged DSL
WFLP'10 Proceedings of the 19th international conference on Functional and constraint logic programming
Efficient and compositional higher-order streams
WFLP'10 Proceedings of the 19th international conference on Functional and constraint logic programming
Embedding dynamic dataflow in a call-by-value language
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Causality for free!: parametricity implies causality for functional reactive programs
PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
Higher-order functional reactive programming without spacetime leaks
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
Functional Reactive Programming (FRP) is an approach to reactive programming where systems are structured as networks of functions operating on signals (time-varying values). FRP is based on the synchronous data-flow paradigm and supports both (an approximation to) continuous-time and discrete-time signals (hybrid systems). What sets FRP apart from most other languages for similar applications is its support for systems with dynamic structure and for higher-order reactive constructs.This paper contributes towards advancing the state of the art of FRP implementation by studying the notion of signal change and change propagation in a setting of structurally dynamic networks of n-ary signal functions operating on mixed continuous-time and discrete-time signals. We first define an ideal denotational semantics (time is truly continuous) for this kind of FRP, along with temporal properties, expressed in temporal logic, of signals and signal functions pertaining to change and change propagation. Using this framework, we then show how to reason about change; specifically, we identify and justify a number of possible optimisations, such as avoiding recomputation of unchanging values. Note that due to structural dynamism, and the fact that the output of a signal function may change because time is passing even if the input is unchanging, the problem is significantly more complex than standard change propagation in networks with static structure.