A Two-Phase Static Analysis for Reliable Adaptation

Adaptive systems are designed to modify their behaviour in response to changes of their operational environment. We adopt a language-based approach to the development of such systems, with particular attention to preventing them from failures in adaptation. The kernel of our proposal is a simple core language, equipped with a type and effect system that computes a sound approximation of program behaviour. The effect is exploited at loading time to verify that programs correctly adapt themselves to all possible running environments.

[1]  Pierpaolo Degano,et al.  The call-by-name semantics of a clause language with functions , 1982 .

[2]  Letizia Tanca,et al.  What you Always Wanted to Know About Datalog (And Never Dared to Ask) , 1989, IEEE Trans. Knowl. Data Eng..

[3]  Dave Clarke,et al.  A semantics for context-oriented programming with layers , 2009, COP@ECOOP.

[4]  Heather Goldsby,et al.  Modular verification of dynamically adaptive systems , 2009, AOSD '09.

[5]  Julie A. McCann,et al.  A survey of autonomic computing—degrees, models, and applications , 2008, CSUR.

[6]  Michael Hanus,et al.  Functional logic programming , 2010, CACM.

[7]  Atsushi Igarashi,et al.  ContextFJ: a minimal core calculus for context-oriented programming , 2011, FOAL.

[8]  Gian Luigi Ferrari,et al.  Local policies for resource usage analysis , 2009, TOPL.

[9]  Atsushi Igarashi,et al.  A Type System for Dynamic Layer Composition , 2012 .

[10]  Robert Hirschfeld,et al.  Language constructs for context-oriented programming: an overview of ContextL , 2005, DLS '05.

[11]  Atsushi Igarashi,et al.  L: context-oriented programming with only layers , 2013, COP@ECOOP.

[12]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[13]  Hidehiko Masuhara,et al.  Featherweight EventCJ: a core calculus for a context-oriented language with event-based per-instance layer transition , 2011, COP@ECOOP.

[14]  Seng Wai Loke Representing and reasoning with situations for context-aware pervasive computing: a logic programming perspective , 2004, Knowl. Eng. Rev..

[15]  George C. Necula,et al.  Safe, Untrusted Agents Using Proof-Carrying Code , 1998, Mobile Agents and Security.

[16]  Giorgio Orsi,et al.  Context Modelling and Context-Aware Querying - (Can Datalog Be of Help?) , 2010, Datalog.

[17]  Michael Haupt,et al.  A comparison of context-oriented programming languages , 2009, COP@ECOOP.

[18]  Eva Rose,et al.  Lightweight Bytecode Verification , 2004, Journal of Automated Reasoning.

[19]  Oscar Nierstrasz,et al.  Context-oriented Programming , 2008, J. Object Technol..

[20]  Carlo Ghezzi,et al.  A formal approach to adaptive software: continuous assurance of non-functional requirements , 2011, Formal Aspects of Computing.

[21]  Alan Mycroft,et al.  A Polymorphic Type System for Prolog , 1984, Logic Programming Workshop.

[22]  Matteo Pradella,et al.  Context-oriented programming: A software engineering perspective , 2012, J. Syst. Softw..

[23]  David Garlan,et al.  Stitch: A language for architecture-based self-adaptation , 2012, J. Syst. Softw..

[24]  Alejandro Sanchez,et al.  Bigraphical Modelling of Architectural Patterns , 2011, FACS.