Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. Computer Science and Artificial Intelligence Lab (CSAIL)
  3. CSAIL Digital Archive
  4. CSAIL Technical Reports (July 1, 2003 - present)
  5. Coherent Reaction

Coherent Reaction

Thumbnail Image
Download
Name

MIT-CSAIL-TR-2009-024.pdf

Size

344.12 KB

Format

Adobe PDF

Checksum (MD5)

f2dbabb3bd20770ed358214868d8b812

Thumbnail Image
Download
Name

MIT-CSAIL-TR-2009-024.ps

Size

1.25 MB

Format

PostScript

Checksum (MD5)

d00593aa8c8e2b1b798a6b31d3ac4110

Author(s)
Edwards, Jonathan
Advisor(s)
Daniel Jackson
Date Issued
June 12, 2009
Series/Report no.
MIT-CSAIL-TR-2009-024
Abstract
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.
Subjects
reactive systems
synchronous reactive programming
interactive systems
functional reactive programming
bidirectional functions
Terms of Use
Creative Commons Attribution 3.0 Unported
http://creativecommons.org/licenses/by/3.0/
Persistent DSpace Link
http://hdl.handle.net/1721.1/45563
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.