Abstract
Emergent behavior is generally defined as the appearance of complex behavior out of multiplicity of relatively simple interactions. Although significant amount of research has been dedicated to develop algorithms for detecting emergent behavior, there is no specific attempt to provide suitable linguistic abstractions to modularize emergent behavior and its related concerns. This results in the implementations that are complex and hard to maintain. In this paper, we identify three characteristic features of emergent behavior from the perspective of programming languages, and accordingly outline the shortcomings of current languages to properly program and modularize emergent behavior. We introduce emergent gummy modules, which are dedicated linguistic abstractions to define the appearance and disappearance conditions of emergent behavior as well as its utilization operations as one holistic module. We explain the implementation of emergent gummy modules in the GummyJ language, and illustrate that they improve the modularity of implementations. We represent the event processing semantics of GummyJ in UPPAAL simulation and model checking toolset.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
References
Fromm, J.: Types and forms of emergence. arXiv:nlin/0506028
Holland, O.T.: Taxonomy for the modeling and simulation of emergent behavior systems. In: Proceedings of the 2007 Spring Simulation Multiconference, vol. 2. Society for Computer Simulation International (2007)
Resnick, M.: Turtles, Termites, and Traffic Jams: Explorations in Massively Parallel Microworlds (Complex Adaptive Systems). A Bradford Book, Cambridge (1997)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–354. Springer, Heidelberg (2001). doi:10.1007/3-540-45337-7_18
Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting object interactions using composition filters. In: Guerraoui, R., Nierstrasz, O., Riveill, M. (eds.) ECOOP 1993. LNCS, vol. 791, pp. 152–184. Springer, Heidelberg (1994). doi:10.1007/BFb0017540
Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented programming. J. Object Technol. 7(3), 125–151 (2008)
Malakuti, S., Aksit, M.: Emergent gummy modules: modular representation of emergent behavior. In: GPCE 2014. ACM, New York (2014)
Esper. http://esper.codehaus.org/
Fisch, D., Janicke, M., Sick, B., Muller-Schloer, C.: Quantitative emergence - a refined approach based on divergence measures. In: SASO 2010, pp. 94–103, September 2010
Chen, C.C.: Complex event types for agent-based simulation. Ph.D. thesis, University College London (2009)
Kubík, A.: Toward a formalization of emergence. Artif. Life 9(1), 41–65 (2002)
Schutz, W.M.: Getting started with complex event processing nodes. White paper, IBM Software Services for WebSphere
Sen, R., Cross, A., Vashistha, A., Padmanabhan, V.N., Cutrell, E., Thies, W.: Accurate speed and density measurement for road traffic in India. In: ACM DEV 2013. ACM (2013)
Bouarfa, S., Blom, H., Curran, R., Everdij, M.: Agent-based modeling and simulation of emergent behavior in air transportation. Complex Adapt. Syst. Model. 1(1), 1–15 (2013)
Shoham, Y.: Agent-oriented programming. Artif. Intell. 60(1), 51–92 (1993)
Rajan, H., Leavens, G.T.: Ptolemy: a language with quantified, typed events. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 155–179. Springer, Heidelberg (2008). doi:10.1007/978-3-540-70592-5_8
Gasiunas, V., Satabin, L., Mezini, M., Núñez, A., Noyé, J.: EScala: modular event-driven object interactions in scala. In: AOSD 2011. ACM (2011)
Zhuang, Y., Chiba, S.: Method slots: supporting methods, events, and advices by a single language construct. In: AOSD 2013. ACM (2013)
Mezini, M., Ostermann, K.: Conquering aspects with Caesar. In: AOSD 2003. ACM Press (2003)
Sakurai, K., Masuhara, H., Ubayashi, N., Matsuura, S., Komiya, S.: Association aspects. In: AOSD 2004. ACM Press (2004)
Compose\({^*}\). http://composestar.sourceforge.net/
Vanderperren, W., Suvée, D., Cibrán, M.A., Fraine, B.: Stateful aspects in JAsCo. In: Gschwind, T., Aßmann, U., Nierstrasz, O. (eds.) SC 2005. LNCS, vol. 3628, pp. 167–181. Springer, Heidelberg (2005). doi:10.1007/11550679_13
Pavel, C.A., Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Moor, O.D., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to AspectJ. In: OOPSLA 2005. ACM (2005)
Malakuti, S., Akşit, M.: Event modules: modularizing domain-specific crosscutting RV concerns. In: Chiba, S., Tanter, É., Bodden, E., Maoz, S., Kienzle, J. (eds.) Transactions on Aspect-Oriented Software Development XI. LNCS, vol. 8400, pp. 27–69. Springer, Heidelberg (2014). doi:10.1007/978-3-642-55099-7_2
Appeltauer, M., Hirschfeld, R., Masuhara, H., Haupt, M., Kawauchi, K.: Event-specific software composition in context-oriented programming. In: Baudry, B., Wohlstadter, E. (eds.) SC 2010. LNCS, vol. 6144, pp. 50–65. Springer, Heidelberg (2010). doi:10.1007/978-3-642-14046-4_4
Núñez, A., Noyé, J., Gasiūnas, V.: Declarative definition of contexts with polymorphic events. In: COP 2009. ACM (2009)
Kamina, T., Aotani, T., Masuhara, H.: EventCJ: a context-oriented programming language with declarative event-based context transition. In: AOSD 2011. ACM (2011)
Kamina, T., Aotani, T., Masuhara, H.: Generalized layer activation mechanism through contexts and subscribers. In: MODULARITY 2015. ACM, New York (2015)
Malakuti, S.: Event composition model: achieving naturalness in runtime enforcement. Ph.D. thesis, University of Twente (2011)
Malakuti, S., Aksit, M.: Event-based modularization: how emergent behavioral patterns must be modularized? In: FOAL 2014. ACM (2014)
Java-JNI. http://download.oracle.com/javase/1.5.0/docs/guide/jni/spec/jnitoc.html
UPPAAL. http://www.uppaal.org/
Gonzlez, S., Mens, K., Cdiz, A.: Designing reusable classes. J. Object Oriented Program. 1(5), 22–35 (1988)
Fayad, M., Schmidt, D.C.: Object-oriented application frameworks. Commun. ACM 40(10), 32 (1997). Special Issue on Object-Oriented Application Frameworks
Johansen, M.F.: Domain specific languages versus frameworks. Master thesis, Department of Informatics, University of Oslo (2009)
Malakuti, S., Aksit, M.: Event-based modularization of reactive systems. In: Agha, G., Igarashi, A., Kobayashi, N., Masuhara, H., Matsuoka, S., Shibayama, E., Taura, K. (eds.) Concurrent Objects and Beyond: Papers dedicated to Akinori Yonezawa on the Occasion of His 65th Birthday. LNCS, vol. 8665, pp. 367–407. Springer, Heidelberg (2014). doi:10.1007/978-3-662-44471-9_16
Cazzola, W., Vacchi, E.: Fine-grained annotations for pointcuts with a finer granularity. In: SAC 2013. ACM (2013)
Hoffman, K., Eugster, P.: Cooperative aspect-oriented programming. Sci. Comput. Program. 74, 333–354 (2009)
Acknowledgements
The author is supported by the German Research Foundation (DFG) in the Collaborative Research Center 912 “Highly Adaptive Energy-Efficient Computing”. The author thanks Prof. Mehmet Aksit and Prof. Uwe Aßmann for their valuable feedback on this work. The author would like to also thank Christian Fraß and Raphael Urmoneit for their support in implementing GummyJ.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this chapter
Cite this chapter
Malakuti, S. (2016). Programming with Emergent Gummy Modules. In: Chiba, S., Südholt, M., Eugster, P., Ziarek, L., Leavens, G. (eds) Transactions on Modularity and Composition I. Lecture Notes in Computer Science(), vol 9800. Springer, Cham. https://doi.org/10.1007/978-3-319-46969-0_3
Download citation
DOI: https://doi.org/10.1007/978-3-319-46969-0_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-46968-3
Online ISBN: 978-3-319-46969-0
eBook Packages: Computer ScienceComputer Science (R0)