Responders: Language Support for Interactive Applications
European Conference on Object-Oriented Programming (ECOOP 2006), Nantes, France, July 3-7, 2006.
Brian Chin, Todd Millstein
A variety of application domains are interactive in nature:
a primary task involves responding to external
actions.
In this paper, we introduce explicit
programming language support for interactive programming, via the
concept of a responder. Responders include a novel control
construct that allows the interactive logic of an application
to be naturally and modularly expressed. In contrast, the
standard approaches to interactive programming, based on the
event-driven style or the state design pattern, fragment this logic
across multiple handlers or classes,
with the control flow among fragments expressed
only indirectly. We describe ResponderJ, an extension to Java
supporting responders. A responder is simply a class with additional
abilities, and these abilities interact naturally with the existing
features of classes, including inheritance. We have implemented
ResponderJ as an extension to the Polyglot compiler for Java. We
illustrate ResponderJ's utility in practice through two case studies:
the implementation of a GUI supporting drag-and-drop functionality,
and a re-implementation of the control logic of JDOM, a Java library
for parsing and manipulating XML files.
[PDF]