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.
DOCUMENT
In dit artikel (en keynote) schetst Nigten enkele grote veranderingen in onze samenleving en dagelijks leven en hoe dit samenhangt met onze kijk op techniek. Zij signaleert een verschuiving van techniek gestuurde innovatie naar innovatie door en met de eindgebruiker en hoe dit zich verhoudt tot technisch onderwijs. Vervolgens vergelijkt Nigten het procesverloop van grote sociale maatschappelijke innovaties met innovatie trajecten zoals we die kennen op het gebied van producten of diensten. Grote sociale innovatie trajecten vragen, net als radicale product- en diensteninnovaties, om andere organisatiemodellen dan het model waarin een product steeds verder verfijnd of verbeterd wordt. Om ons heen zien we dat de ROC opleidingen en de Hogescholen, moeite hebben met snel schakelen. De grote organisaties, de instituten hebben meestal niet de armslag om risico, een belangrijk aspect van innovatie, te nemen. Desondanks is het van groot belang dat de studenten toekomstbestendig onderwijs krijgen. Aan de hand van innovatie projecten van The Patching Zone, een transdisciplinair innovatie laboratorium in Rotterdam en het lectoraat PI aan de Hanze Hogeschool wordt er in dit artikel nader in gegaan op bruikbare innovatie modellen voor het technisch onderwijs. Hiervoor hanteert Nigten twee sleutelbegrippen: co-creatie en creativiteit en hoe deze die naadloos op elkaar aan kunnen sluiten.
MULTIFILE
We propose a combined visual and text-based programming environment based on the actor model suitable for novice to expert programmers. This model encompasses simple communicating entities which easily scale from utilizing threads inside the computer to massive distributed computer systems. To design our proposed environment we classify different levels of programming users encounter when dealing with technologies in creative scenarios. We use this classification system as a foundation to design our proposed environment to support (novice) users on their way to a next level. This framework not only intends to support modern computing power through a concurrent programming paradigm, but is also intended to let users interact with it on the different classification levels.
DOCUMENT