Live programming is a style of development characterized by incremental change and immediate feedback. Instead of long edit-compile cycles, developers modify a running program by changing its source code, receiving immediate feedback as it instantly adapts in response. In this paper, we propose an approach to bridge the gap between running programs and textual domain-specific languages (DSLs). The first step of our approach consists of applying a novel model differencing algorithm, tmdiff, to the textual DSL code. By leveraging ordinary text differencing and origin tracking, tmdiff produces deltas defined in terms of the metamodel of a language. In the second step of our approach, the model deltas are applied at run time to update a running system, without having to restart it. Since the model deltas are derived from the static source code of the program, they are unaware of any run-time state maintained during model execution. We therefore propose a generic, dynamic patch architecture, rmpatch, which can be customized to cater for domain-specific state migration. We illustrate rmpatch in a case study of a live programming environment for a simple DSL implemented in Rascal for simultaneously defining and executing state machines.
Installatierede uitgesproken bij de aanvaarding van het lectoraat Image in Context aan de Hanzehogeschool Groningen te Groningen op 13 november 2012. Tekst in het Nederlands en het Engels.
Individuals after anterior cruciate ligament reconstruction (ACLR) have a high rate of reinjury upon return to competitive sports. Deficits in motor control may influence reinjury risk and can be addressed during rehabilitation with motor learning strategies. When instructing patients in performing motor tasks after ACLR, an external focus of attention directed to the intended movement effect has been shown to be more effective in reducing reinjury risk than an internal focus of attention on body movements. While this concept is mostly agreed upon, recent literature has made it clear that the interpretation and implementation of an external focus of attention within ACLR rehabilitation needs to be better described. The purpose of this commentary is to provide a clinical framework for the application of attentional focus strategies and guide clinicians towards effectively utilizing an external focus of attention in rehabilitation after ACLR.