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
Proceedings of the first ACM SIGPLAN international conference on Functional programming
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Multi-stage programming with explicit annotations
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Prototyping real-time vision systems: an experiment in DSL design
Proceedings of the 21st international conference on Software engineering
The Haskell school of expression: learning functional programming through multimedia
The Haskell school of expression: learning functional programming through multimedia
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
The ESTEREL Synchronous Programming Language and its Mathematical Semantics
Seminar on Concurrency, Carnegie-Mellon University
Directions in Functional Programming for Real(-Time) Applications
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
Applying Practical Formal Methods to the Specification and Analysis of Security Properties
MMM-ACNS '01 Proceedings of the International Workshop on Information Assurance in Computer Networks: Methods, Models, and Architectures for Network Security
SCR*: A Toolset for Specifying and Analyzing Software Requirements
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
Modular Compilers Based on Monad Transformers
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
Compiling real time functional reactive programming
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
Functional reactive programming, continued
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Program Synthesis from Formal Requirements Specifications Using APTS
Higher-Order and Symbolic Computation
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
FSM-Hume: programming resource-limited systems using bounded automata
Proceedings of the 2004 ACM symposium on Applied computing
An event detection algebra for reactive systems
Proceedings of the 4th ACM international conference on Embedded software
Behavioral reactivity and real time programming in XML: functional programming meets SMIL animation
Proceedings of the 2004 ACM symposium on Document engineering
Stack size analysis for interrupt-driven programs
Information and Computation - Special issue: Commemorating the 50th birthday anniversary of Paris C. Kanellakis
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
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
Flask: staged functional programming for sensor networks
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Push-pull functional reactive programming
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Stack size analysis for interrupt-driven programs
Information and Computation
Stack size analysis for interrupt-driven programs
SAS'03 Proceedings of the 10th international conference on Static analysis
Mathematical equations as executable models of mechanical systems
Proceedings of the 1st ACM/IEEE International Conference on Cyber-Physical Systems
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
Asynchronous functional reactive programming for GUIs
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Higher-order functional reactive programming without spacetime leaks
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
A survey on reactive programming
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
Functional Reactive Programming (FRP) is a high-level declarative language for programming reactive systems. Previous work on FRP has demonstrated its utility in a wide range of application domains, including animation, graphical user interfaces, and robotics. FRP has an elegant continuous-time denotational semantics. However, it guarantees no bounds on execution time or space, thus making it unsuitable for many embedded real-time applications. To alleviate this problem, we recently developed Real-Time FRP(RT-FRP), whose operational semantics permits us to formally guarantee bounds on both execution time and space.In this paper we present a formally verifiable compilation strategy from a new language based on RT-FRP into imperative code. The new language, called Event-Driven FRP (E-FRP), is more tuned to the paradigm of having multiple external events. While it is smaller than RT-FRP, it features a key construct that allows us to compile the language into efficient code. We have used this language and its compiler to generate code for a small robot controller that runs on a PIC16C66 micro-controller. Because the formal specification of compilation was crafted more for clarity and for technical convenience, we describe an implementation that produces more efficient code.