Event-based Context-Oriented Programming

We propose event-based context-oriented programming, and design and implement EventCJ, an event-based extension to ContextJ. Its design stems from our observation that, in many context-aware applications, context changes are triggered by external events. Thus, in addition to the current COP language mechanisms, namely the one to activate/deactivate layers in accordance with a flow of control in programs, and the one to dispatch method calls to partial methods on active layers, we propose a mechanism to declaratively specify how the receiver of events changes its active contexts. EventCJ can declare events that trigger context transitions, and context transition rules that define how each instance’s context changes when it receives a specific event.

Members

Papers

  • [KAMI18]Tetsuo Kamina, Tomoyuki Aotani, Hidehiko Masuhara, and Atsushi Igarashi. Method safety mechanism for asynchronous layer deactivation. Science of Computer Programming, 156:104–120, May 2018. [ bib | DOI | http ]
  • [KAM17]Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. Push-based reactive layer activation in context-oriented programming. In COP’17: Proceedings of the International Workshop on Context-Oriented Programming, pages 17–21, New York, NY, USA, June 2017. ACM. [ bib | DOI ]
  • [KAM16a]Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. Generalized layer activation mechanism for context-oriented programming. Transactions on Modularity and Composition (TOMC), 9800:123–166, September 2016. extendend from [KAM15]. [ bib | DOI | http | .pdf ]
  • [KAM16b]Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. Toward fluent module interactions. In David Liu, editor, Proceedings of the Workshop on Modularity Across the System Stack (MASS 2016), included in Companion Proceedings of International Conference on Modularity, pages 158–159. ACM, March 2016. [ bib | DOI ]
  • [KAM15]Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. Generalized layer activation mechanism through contexts and subscribers. In Proceedings of International Conference on Modularity (Modularity’15), pages 14–28, March 2015. [ bib | DOI | .pdf ]
  • [AKM14b]Tomoyuki Aotani, Tetsuo Kamina, and Hidehiko Masuhara. Unifying multiple layer activation mechanisms using one event sequence. In Proceedings of 6th International Workshop on Context-Oriented Programming, COP’14, pages 2:1–2:6, New York, NY, USA, July 2014. ACM. [ bib | DOI ]
  • [KAI14]Tetsuo Kamina, Tomoyuki Aotani, and Atsushi Igarashi. On-demand layer activation for type-safe deactivation. In Proceedings of 6th International Workshop on Context-Oriented Programming, COP’14, pages 4:1–4:7, New York, NY, USA, July 2014. ACM. [ bib | DOI ]
  • [AKM14a]Tomoyuki Aotani, Tetsuo Kamina, and Hidehiko Masuhara. Context holders: Realizing multiple layer activation mechanisms in a single context-oriented language. In Eric Bodden, editor, Proceedings of the Workshop on Foundations of Aspect-Oriented Languages (FOAL’14), pages 3–6, April 2014. [ bib | DOI | .pdf ]
  • [KAM13c]Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. Mapping context-dependent requirements to event-based context-oriented programs for modularity. In Proceedings of the Workshop on Reactivity, Events and Modularity (REM 2013), colocated with OOPSLA’13, October 2013. [ bib | http | .pdf ]
  • [KAM13d]Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. A unified context activation mechanism. In COP’13: Proceedings of the International Workshop on Context-Oriented Programming, page Article No. 2, New York, NY, USA, July 2013. ACM. [ bib | DOI | .pdf ]
  • [KAM13a]Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. A core calculus of composite layers. In Erik Ernst, editor, Proceedings of Foundations of Aspect-Oriented Langauges (FOAL2013), pages 7–12, March 2013. ACM Digital library. [ bib | DOI | .pdf ]
  • [KAM13b]Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. Introducing composite layers in EventCJ. IPSJ Transaction on Programming, 6(1):1–8, January 2013. [ bib | DOI | .pdf ]
  • [KAM12a]Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. Bridging real-world contexts and units of behavioral variations by composite layers. In Proceedings of the Workshop on Context-Oriented Programming (COP’12), pp. 4:1–4:6, Beijing, China. ACM, June 2012. [ bib | DOI | .pdf ]
  • [AKM11]Tomoyuki Aotani, Tetsuo Kamina, and Hidehiko Masuhara. Featherweight EventCJ: a core calculus for a context-oriented language with event-based per-instance layer transition. In Proceedings of the Workshop on Context-Oriented Programming (COP’11), pp. 1:1–1:7, Lancaster, UK, July 2011. [ bib | DOI | .pdf ]
  • [KAM11]Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. EventCJ: A context-oriented programming language with declarative event-based context transition. In Shigeru Chiba, editor, Proceedings of the 10th International Conference on Aspect-Oriented Software Development (AOSD’11), pp. 253–264, Porto de Galinhas, Pernambuco, Brazil. ACM Press, March 21–25 2011. [ bib | DOI | .pdf ]
  • [KAM10]Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. Designing event-based context transition in context-oriented programming. In Pascal Costanza, editor, Proceedings of 2nd International Workshop on Context-Oriented Programming (COP’10), pp. 7–12, Maribor, Solovenia, June 2010. [ bib | DOI | .pdf ]