Statecharts: A visual formalism for complex systems
Science of Computer Programming
LUSTRE: a declarative language for real-time programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
Why functional programming matters
The Computer Journal - Special issue on Lazy functional programming
On the development of reactive systems
Logics and models of concurrent systems
The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
The early history of Smalltalk
HOPL-II The second ACM SIGPLAN conference on History of programming languages
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Prototype-Based Object-Oriented Programming: Concepts, Languages, and Applications
Prototype-Based Object-Oriented Programming: Concepts, Languages, and Applications
First version of a data flow procedure language
Programming Symposium, Proceedings Colloque sur la Programmation
Monads for Functional Programming
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Advances in dataflow programming languages
ACM Computing Surveys (CSUR)
Subtext: uncovering the simplicity of programming
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
Property models: from incidental algorithms to reusable components
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Pragmatic Thinking and Learning: Refactor Your Wetware (Pragmatic Programmers)
Pragmatic Thinking and Learning: Refactor Your Wetware (Pragmatic Programmers)
Reactors: a data-oriented synchronous/asynchronous programming model for distributed applications
COORDINATION'07 Proceedings of the 9th international conference on Coordination models and languages
SuperGlue: component programming with object-oriented signals
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Embedding dynamic dataflow in a call-by-value language
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Developers ask reachability questions
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
A survey on reactive programming
ACM Computing Surveys (CSUR)
Model-based, event-driven programming paradigm for interactive web applications
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Hi-index | 0.00 |
Side effects are both the essence and bane of imperative programming. The programmer must carefully coordinate actions to manage their side effects upon each other. Such coordination is complex, error-prone, and fragile. Coherent reaction is a new model of change-driven computation that coordinates effects automatically. State changes trigger events called reactions that in turn change other states. A coherent execution order is one in which each reaction executes before any others that are affected by its changes. A coherent order is discovered iteratively by detecting incoherencies as they occur and backtracking their effects. Unlike alternative solutions, much of the power of imperative programming is retained, as is the common sense notion of mutable state. Automatically coordinating actions lets the programmer express what to do, not when to do it. Coherent reactions are embodied in the Coherence language, which is specialized for interactive applications like those common on the desktop and web. The fundamental building block of Coherence is the dynamically typed mutable tree. The fundamental abstraction mechanism is the virtual tree, whose value is lazily computed, and whose behavior is generated by coherent reactions.