LUCID, the dataflow programming language
LUCID, the dataflow programming language
Revised report on the algorithmic language scheme
ACM SIGPLAN Notices
SIGNAL: A declarative language for synchronous programming of real-time systems
Proc. of a conference on Functional programming languages and computer architecture
LUSTRE: a declarative language for real-time programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
CML: A higher concurrent language
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Isomorphisms of types: from &lgr;-calculus to information retrieval and language design
Isomorphisms of types: from &lgr;-calculus to information retrieval and language design
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Proving the correctness of reactive systems using sized types
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Building domain-specific embedded languages
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Prototyping real-time vision systems: an experiment in DSL design
Proceedings of the 21st international conference on Software engineering
Recursion and dynamic data-structures in bounded space: towards embedded ML programming
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
The Haskell school of expression: learning functional programming through multimedia
The Haskell school of expression: learning functional programming through multimedia
Science of Computer Programming - Special issue on mathematics of program construction
Functional reactive programming from first principles
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
FranTk - a declarative GUI language for Haskell
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
Proceedings of the International Workshop on Hybrid and Real-Time Systems
HART '97 Proceedings of the International Workshop on Hybrid and Real-Time Systems
Multi-Stage Programming: Axiomatization and Type Safety
ICALP '98 Proceedings of the 25th International Colloquium on Automata, Languages and Programming
The ESTEREL Synchronous Programming Language and its Mathematical Semantics
Seminar on Concurrency, Carnegie-Mellon University
Modular Domain Specific Languages and Tools
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Multistage programming: its theory and applications
Multistage programming: its theory and applications
Compiling real time functional reactive programming
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
Predictable programs in barcodes
CASES '02 Proceedings of the 2002 international conference on Compilers, architecture, and synthesis for embedded systems
Functional reactive programming, continued
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Directions in Functional Programming for Real(-Time) Applications
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
Hume: a domain-specific language for real-time embedded systems
Proceedings of the 2nd international conference on Generative programming and component engineering
FSM-Hume: programming resource-limited systems using bounded automata
Proceedings of the 2004 ACM symposium on Applied computing
wxHaskell: a portable and concise GUI library for haskell
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Towards formally verifiable resource bounds for real-time embedded systems
ACM SIGBED Review - Special issues on workshop on innovative techniques for certification of embedded systems
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Proceedings of the 2007 ACM symposium on Applied computing
Lowering: a static optimization technique for transparent functional reactivity
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
EMSOFT '07 Proceedings of the 7th ACM & IEEE international conference on Embedded software
Plugging a Space Leak with an Arrow
Electronic Notes in Theoretical Computer Science (ENTCS)
Flask: staged functional programming for sensor networks
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Reactive queries in mobile ad hoc networks
Proceedings of the 6th international workshop on Middleware for pervasive and ad-hoc computing
Classes and inheritance in actor-oriented design
ACM Transactions on Embedded Computing Systems (TECS)
Safe functional reactive programming through dependent types
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
Loosely-coupled distributed reactive programming in mobile ad hoc networks
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Determining actual response time in P-FRP
PADL'11 Proceedings of the 13th international conference on Practical aspects of declarative languages
A core language for executable models of cyber physical systems: work in progress report
ACM SIGBED Review - Work-in-Progress (WiP) Session of the 2nd International Conference on Cyber Physical Systems
Higher-order functional reactive programming in bounded space
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A dependently typed framework for static analysis of program execution costs
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
A hybrid visual dataflow language for coordination in mobile ad hoc networks
COORDINATION'10 Proceedings of the 12th international conference on Coordination Models and Languages
Embedding dynamic dataflow in a call-by-value language
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Time petri nets for schedulability analysis of the transactional event handlers of P-FRP
Proceedings of the 2012 ACM Research in Applied Computation Symposium
Proceedings of the 2012 ACM Research in Applied Computation Symposium
Feasibility interval for the transactional event handlers of P-FRP
Journal of Computer and System Sciences
Reactive behavior in object-oriented applications: an analysis and a research roadmap
Proceedings of the 12th annual international conference on Aspect-oriented software development
Asynchronous functional reactive programming for GUIs
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Terra: a multi-stage language for high-performance computing
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
A survey on reactive programming
ACM Computing Surveys (CSUR)
Towards optimal priority assignments for the transactional event handlers of P-FRP
Proceedings of the 2013 Research in Adaptive and Convergent Systems
Hi-index | 0.01 |
Functional reactive programming (FRP) is a declarative programming paradigm where the basic notions are continuous, time-varying behaviors and discrete, event-based reactivity. FRP has been used successfully in many reactive programming domains such as animation, robotics, and graphical user interfaces. The success of FRP in these domains encourages us to consider its use in real-time applications, where it is crucial that the cost of running a program be bounded and known before run-time. But previous work on the semantics and implementation of FRP was not explicitly concerned about the issues of cost. In fact, the resource consumption of FRP programs in the current implementation is often hard to predict. As a first step towards addressing these concerns, this paper presents real-time FRP (RT-FRP), a statically-typed language where the time and space cost of each execution step for a given program is statically bounded. To take advantage of existing work on languages with bounded resources, we split RT-FRP into two parts: a reactive part that captures the essential ingredients of FRP programs, and a base language part that can be instantiated to any generic programming language that has been shown to be terminating and resource-bounded. This allows us to focus on the issues specific to RT-FRP, namely, two forms of recursion. After presenting the operational explanation of what can go wrong due to the presence of recursion, we show how the typed version of the language is terminating and resource-bounded. Most of our FRP programs are expressible directly in RT. The rest are expressible via a simple mechanism that integrates RT-FRP with the base language.