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 fourteenth annual ACM symposium on Principles of distributed computing
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
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
Protected Mode Software Architecture
Protected Mode Software Architecture
Inside Microsoft Windows 2000
Understanding the Linux Kernel
Understanding the Linux Kernel
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
The ESTEREL Synchronous Programming Language and its Mathematical Semantics
Seminar on Concurrency, Carnegie-Mellon University
FTRTFT '02 Proceedings of the 7th International Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems: Co-sponsored by IFIP WG 2.2
A type and effect system for atomicity
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Language support for lightweight transactions
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Composable memory transactions
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
AtomCaml: first-class atomicity via rollback
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Preemptible Atomic Regions for Real-Time Java
RTSS '05 Proceedings of the 26th IEEE International Real-Time Systems Symposium
Optimizing memory transactions
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Linux Device Drivers, 3rd Edition
Linux Device Drivers, 3rd Edition
EMSOFT '07 Proceedings of the 7th ACM & IEEE international conference on Embedded software
EMSOFT '07 Proceedings of the 7th ACM & IEEE international conference on Embedded software
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
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
Towards optimal priority assignments for the transactional event handlers of P-FRP
Proceedings of the 2013 Research in Adaptive and Convergent Systems
Variable voltage scheduling with the priority-based functional reactive programming language
Proceedings of the 2013 Research in Adaptive and Convergent Systems
Hi-index | 0.00 |
E-FRP is declarative language for programming resource-bounded, event-driven systems. The original high-level semantics of E-FRP requires that each event handler execute atomically. This requirement facilitates reasoning about EFRP programs, and therefore it is a desirable feature of the language. But the original compilation strategy requires that each handler complete execution before another event can occur. This implementation choice treats all events equally, in that it forces the upper bound on the time needed to respond to any event to be the same. While this is acceptable for many applications, it is often the case that some events are more urgent than others. In this paper, we show that we can improve the compilation strategy without altering the high-level semantics. With this new compilation strategy, we give the programmer more control over responsiveness without taking away the ability to reason about programs at a high level. The programmer controls responsiveness by declaring priorities for events, and the compilation strategy produces code that uses preemption to enforce these priorities. We show that the compilation strategy enjoys the same properties as the original strategy, with the only change being that the programmer reasons modulo permutations on the order of event arrivals.