Technical Reports

Display by Author: A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Search by for:
Hook: An Embedded Domain-Specific Language for Fusing Implicit Interactions to Explicit Event Handlers
Authors: Shibata, Tomoki; Ahrens, Matthew; Jacob, Robert J.K.
Download Formats: [PDF]
Emerging physiological sensing technologies are leading to an interaction design paradigm--namely implicit interactions--in which computers have the ability to implicitly perceive and respond to the physiological understandings of their users. However, a noticeable challenge remains in integrating such implicit interactions into a conventional event-based interactive system, which typically responds to the user's explicit events. (e.g., key presses, mouse clicks, etc.) The challenge is due to multiple input sources of different types, and, by extension, demands programmers to be responsible for prescribing how interactions of the two different types, implicit and explicit, interfere with each other. To address this challenge, we introduce a domain-specific language (DSL), Hook, that allows programmers to declaratively express when to perform implicit interactions with respect to desired explicit ones and how to fuse the computational effects of the interactions in a modular way. The Hook language treats interactions as a first-class abstraction and provides three types of fusion strategies, which assist programmers in gluing the two types of interactions together. This paper describes an implementation of the Hook language as a DSL embedded in Haskell and formalizes the language as a computational model for future replication and extension. We also demonstrate the utility of the language through three case studies, each of which implements an implicit interaction that extends behaviors of a published interactive system. Lastly, we discuss limitations of the language in its current state and how the language could further aid programmers to achieve separation of concerns while maintaining algorithmic precision in implementing a complex combination of different types of interactions.

Faculty: for help posting a technical report please visit the User Guide.