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
Principles of database and knowledge-base systems, Vol. I
Principles of database and knowledge-base systems, Vol. I
On the development of reactive systems
Logics and models of concurrent systems
The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
A calculus of mobile processes, I
Information and Computation
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Workflow, transactions and datalog
PODS '99 Proceedings of the eighteenth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
ACM Computing Surveys (CSUR)
Incremental Evaluation of Datalog Queries
ICDT '92 Proceedings of the 4th International Conference on Database Theory
Architectural styles and the design of network-based software architectures
Architectural styles and the design of network-based software architectures
A foundation for actor computation
Journal of Functional Programming
Composable memory transactions
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Argos: an automaton-based synchronous language
Computer Languages
Reactors: A data-oriented synchronous/asynchronous programming model for distributed applications
Theoretical Computer Science
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Hi-index | 0.00 |
Our aim is to define the kernel of a simple and uniform programming model--the reactor model--suitable for building and evolving internet-scale programs. A reactor consists of two principal components: mutable state, in the form of a fixed collection of relations, and code, in the form of a fixed collection of rules in the style of datalog. A reactor's code is executed in response to an external stimulus, which takes the form of an attempted update to the reactor's state. As in classical process calculi, the reactor model accommodates collections of distributed, concurrently executing processes. However, unlike classical process calculi, our observable behaviors are sequences of states, rather than sequences of messages. Similarly, the interface to a reactor is simply its state, rather than a collection of message channels, ports, or methods. One novel feature of our model is the ability to compose behaviors both synchronously and asynchronously. Also, our use of datalog-style rules allows aspect-like composition of separately-specified functional concerns in a natural way.