Run-time Variability with First-class Contexts

Wernli, Erwann (2013). Run-time Variability with First-class Contexts. (Dissertation, University of Bern, Philosophisch-naturwissenschaftliche Fakultät)

wernli-phd.pdf - Published Version
Available under License Creative Commons: Attribution-Share Alike (CC-BY-SA).

Download (1MB) | Preview

Software must be regularly updated to keep up with changing requirements. Unfortunately, to install an update, the system must usually be restarted, which is inconvenient and costly. In this dissertation, we aim at overcoming the need for restart by enabling run-time changes at the programming language level. We argue that the best way to achieve this goal is to improve the support for encapsulation, information hiding and late binding by contextualizing behavior. In our approach, behavioral variations are encapsulated into context objects that alter the behavior of other objects locally. We present three contextual language features that demonstrate our approach. First, we present a feature to evolve software by scoping variations to threads. This way, arbitrary objects can be substituted over time without compromising safety. Second, we present a variant of dynamic proxies that operate by delegation instead of forwarding. The proxies can be used as building blocks to implement contextualization mechanisms from within the language. Third, we contextualize the behavior of objects to intercept exchanges of references between objects. This approach scales information hiding from objects to aggregates. The three language features are supported by formalizations and case studies, showing their soundness and practicality. With these three complementary language features, developers can easily design applications that can accommodate run-time changes.

Item Type:

Thesis (Dissertation)


08 Faculty of Science > Institute of Computer Science (INF)
08 Faculty of Science > Institute of Computer Science (INF) > Software Composition Group (SCG)

UniBE Contributor:

Wernli, Erwann


000 Computer science, knowledge & systems
500 Science > 510 Mathematics




Manuela Bamert

Date Deposited:

29 Jan 2018 14:28

Last Modified:

31 Oct 2019 19:20




Actions (login required)

Edit item Edit item
Provide Feedback