Abstract
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.
Work partially supported by the MIUR-PRIN project Security Horizons.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Antoy, S., Hanus, M.: Functional logic programming. Communications of the ACM 53(4), 74–85 (2010)
Aotani, T., Kamina, T., Masuhara, H.: Featherweight eventcj: a core calculus for a context-oriented language with event-based per-instance layer transition. In: Proceedings of the 3rd International Workshop on Context-Oriented Programming, COP 2011. ACM, New York (2011)
Appeltauer, M., Hirschfeld, R., Haupt, M., Lincke, J., Perscheid, M.: A comparison of context-oriented programming languages. In: International Workshop on Context-Oriented Programming, COP 2009, pp. 6:1–6:6. ACM, NY (2009)
Bartoletti, M., Degano, P., Ferrari, G.L., Zunino, R.: Local policies for resource usage analysis. ACM Trans. Program. Lang. Syst. 31(6) (2009)
Bellia, M., Degano, P., Levi, G.: The call by name semantics of a clause language with functions. In: Clark, K.L., Tärnlund, S.A. (eds.) Logic Programming, APIC Studies in Data Processing, vol. 16, pp. 281–295. Academic Press, London (1982)
Ceri, S., Gottlob, G., Tanca, L.: What you always wanted to know about datalog (and never dared to ask). IEEE Trans. on Knowl. and Data Eng. 1(1) (March 1989)
Cheng, S.W., Garlan, D.: Stitch: A language for architecture-based self-adaptation. Journal of Systems and Software 85(12), 2860–2875 (2012)
Clarke, D., Sergey, I.: A semantics for context-oriented programming with layers. In: International Workshop on Context-Oriented Programming, COP 2009, pp. 10:1–10:6. ACM, New York (2009)
Costanza, P.: Language constructs for context-oriented programming. In: Proceedings of the Dynamic Languages Symposium, pp. 1–10. ACM Press (2005)
Filieri, A., Ghezzi, C., Tamburrelli, G.: A formal approach to adaptive software: continuous assurance of non-functional requirements. Formal Aspects of Computing 24(2), 163–186 (2012)
Galletta, L.: Adaptivity: linguistic mechanisms and static analysis techniques. Ph.D. thesis, Comp. Sci. Dept., University of Pisa (2014), http://www.di.unipi.it/~galletta/phdThesis.pdf
Hirschfeld, R., Igarashi, A., Masuhara, H.: ContextFJ: a minimal core calculus for context-oriented programming. In: Proceedings of the 10th International Workshop on Foundations of Aspect-Oriented Languages, pp. 19–23. ACM (2011)
Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented programming. Journal of Object Technology 7(3), 125–151 (2008)
Huebscher, M.C., McCann, J.A.: A survey of autonomic computing degrees, models, and applications. ACM Comput. Surv. 40(3), 7:1–7:28 (2008)
Igarashi, A., Hirschfeld, R., Masuhara, H.: A type system for dynamic layer composition. In: FOOL 2012, p. 13 (2012)
Loke, S.W.: Representing and reasoning with situations for context-aware pervasive computing: a logic programming perspective. Knowl. Eng. Rev. 19(3), 213–233
Meijer, E., Schulte, W., Bierman, G.: Programming with circles, triangles and rectangles. In: XML Conference and Exposition (2003)
Mycroft, A., O’Keefe, R.A.: A polymorphic type system for prolog. Artificial Intelligence 23(3), 295–307 (1984)
Necula, G.C., Lee, P.: Safe, untrusted agents using proof-carrying code. In: Vigna, G. (ed.) Mobile Agents and Security. LNCS, vol. 1419, pp. 61–91. Springer, Heidelberg (1998)
Orsi, G., Tanca, L.: Context modelling and context-aware querying. In: de Moor, O., Gottlob, G., Furche, T., Sellers, A. (eds.) Datalog 2010. LNCS, vol. 6702, pp. 225–244. Springer, Heidelberg (2011)
Rose, E.: Lightweight bytecode verification. J. Autom. Reason. 31(3-4), 303–334
Salehie, M., Tahvildari, L.: Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4(2), 14:1–14:42 (2009)
Salvaneschi, G., Ghezzi, C., Pradella, M.: Context-oriented programming: A software engineering perspective. Journal of Systems and Software 85(8), 1801–1817
Sanchez, A., Barbosa, L.S., Riesco, D.: Bigraphical modelling of architectural patterns. In: Arbab, F., Ölveczky, P.C. (eds.) FACS 2011. LNCS, vol. 7253, pp. 313–330. Springer, Heidelberg (2012)
Zhang, J., Goldsby, H.J., Cheng, B.H.: Modular verification of dynamically adaptive systems. In: Proceedings of the 8th ACM International Conference on Aspect-oriented Software Development, AOSD 2009, pp. 161–172. ACM, NY (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Degano, P., Ferrari, GL., Galletta, L. (2014). A Two-Phase Static Analysis for Reliable Adaptation. In: Giannakopoulou, D., Salaün, G. (eds) Software Engineering and Formal Methods. SEFM 2014. Lecture Notes in Computer Science, vol 8702. Springer, Cham. https://doi.org/10.1007/978-3-319-10431-7_28
Download citation
DOI: https://doi.org/10.1007/978-3-319-10431-7_28
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-10430-0
Online ISBN: 978-3-319-10431-7
eBook Packages: Computer ScienceComputer Science (R0)