Modularity 2016
Mon 14 - Thu 17 March 2016 Spain
Tue 15 Mar 2016 12:00 - 12:30 at CROW - CROW Workshop Session 1 Cont.

Language constructs for programming context-dependent computation are required in recent software development, where context information influences program behavior, whose description often scattered around several modules as conditional expressions. The Context-Oriented Programming (COP) community has revealed that context-dependent computations should be modularized into partially defined methods, those partial methods should be adaptable at run-time, and a method dispatching mechanism should take context information into account. Such language constructs enhance modularity of a program. Although contexts are usually reactively changeable, however, many existing COP approaches do not consider the relation between contexts and reactive information. In this paper, we develop a Scala library for context-dependent computations, based on the idea of contexts as reactive values, which are well studied in the field of Functional Reactive Programming. We also show that dynamic binding is useful to control how reactive values influence context dependent functions; it provides value caching to prevent unexpected reactions.