ABSTRACT
Easily programming behaviors is one major issue of a large and reconfigurable deployment in the Internet of Things. Such kind of devices often requires to externalize part of their behavior such as the sensing, the data aggregation or the code offloading. Most existing context-oriented programming languages integrate in the same class or close layers the whole behavior. We propose to abstract and separate the context tracking from the decision process, and to use event-based handlers to interconnect them. We keep a very easy declarative and non-layered programming model. We illustrate by defining an extension to Golo - a JVM-based dynamic language.
- M. Appeltauer, R. Hirschfeld, M. Haupt, J. Lincke, and M. Perscheid. A comparison of context-oriented programming languages. In International Workshop on Context-Oriented Programming, COP '09, page 6:1--6:6, New York, NY, USA, 2009. ACM. Google ScholarDigital Library
- M. Appeltauer, R. Hirschfeld, M. Haupt, and H. Masuhara. ContextJ: Context-oriented programming with java. Computer Software, 28(1):272--292, 2011.Google Scholar
- M. Appeltauer, R. Hirschfeld, and J. Lincke. Declarative layer composition with the JCop programming language. The Journal of Object Technology, 12(2):4:1, 2013.Google Scholar
- M. Appeltauer, R. Hirschfeld, and H. Masuhara. Improving the development of context-dependent java applications with ContextJ. In International Workshop on Context-Oriented Programming, COP '09, page 5:1--5:5, New York, NY, USA, 2009. ACM. Google ScholarDigital Library
- D. Clarke and I. Sergey. A semantics for context-oriented programming with layers. In International Workshop on Context-Oriented Programming, COP '09, page 10:1--10:6, New York, NY, USA, 2009. ACM. Google ScholarDigital Library
- C. Ghezzi, M. Pradella, and G. Salvaneschi. Context oriented programming in highly concurrent systems. In International Workshop on Context-Oriented Programming, COP '10, page 1:1--1:3, New York, NY, USA, 2010. ACM. Google ScholarDigital Library
- S. González, N. Cardozo, K. Mens, A. Cádiz, J.-C. Libbrecht, and J. Goffaux. Subjective-c: Bringing context to mobile platform programming. In Third international conference on Software Language Engineering (SLE 2010), number 6563 in LNCS, pages 246--265, Berlin, Heidelberg, 2010. Springer. Google ScholarDigital Library
- K. R. Jayaram and P. Eugster. Context-oriented programming with EventJava. In International Workshop on Context-Oriented Programming, COP '09, page 9:1--9:6, New York, NY, USA, 2009. ACM. Google ScholarDigital Library
- T. Kamina, T. Aotani, and H. Masuhara. EventCJ: a context-oriented programming language with declarative event-based context transition. In 10th International Conference on Aspect-oriented Software Development, AOSD '11, page 253--264, New York, NY, USA, 2011. ACM. Google ScholarDigital Library
- T. Kamina, T. Aotani, and H. Masuhara. A unified context activation mechanism. In International Workshop on Context-Oriented Programming, COP'13, page 2:1--2:6, New York, NY, USA, 2013. Google ScholarDigital Library
- T. Kamina, T. Aotani, and H. Masuhara. Generalized layer activation mechanism through contexts and subscribers. In 14th International Conference on Modularity, MODULARITY 2015, pages 14--28, New York, NY, USA, 2015. ACM. Google ScholarDigital Library
- T. Kamina and T. Tamai. Towards safe and flexible object adaptation. In International Workshop on Context-Oriented Programming, COP '09, page 4:1--4:6, New York, NY, USA, 2009. ACM. Google ScholarDigital Library
- B. Maingret. Congolo github repository. https://github.com/bmaingret/contextual-golo-lang/tree/congolo, 2014.Google Scholar
- F. L. Mouël. Golo-lang - messaging. https://github.com/flemouel/congolo/tree/master/src/main/java/gololang/concurrent/messaging, 2014.Google Scholar
- A. Núñez, J. Noyé, and V. Gasiunas. Declarative definition of contexts with polymorphic events. In International Workshop on Context-Oriented Programming, COP '09, page 2:1--2:6, New York, NY, USA, 2009. ACM. Google ScholarDigital Library
- J. Ponge. Avoiding benchmarking pitfalls on the jvm. Oracle Java Magazine, jul 2014.Google Scholar
- J. Ponge, F. Le Mouël, and N. Stouls. Golo, a dynamic, light and efficient language for post-invokedynamic JVM. In 11th International Conference on Principles and Practice of Programming in Java (PPPJ'2013), page 153. ACM Press, 2013. Google ScholarDigital Library
- J. Vallejos, S. González, P. Costanza, W. De Meuter, T. D'Hondt, and K. Mens. Predicated generic functions. In Software Composition, volume 6144 of LNCS, pages 66--81. Springer Berlin Heidelberg, 2010. Google ScholarDigital Library
- B. H. Wasty, A. Semmo, M. Appeltauer, B. Steinert, and R. Hirschfeld. ContextLua: dynamic behavioral variations in computer games. In International Workshop on Context-Oriented Programming, COP '10, page 5:1--5:6, New York, NY, USA, 2010. ACM. Google ScholarDigital Library
Index Terms
- Towards a Decoupled Context-Oriented Programming Language for the Internet of Things
Recommendations
Golo, a dynamic, light and efficient language for post-invokedynamic JVM
PPPJ '13: Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and ToolsThis paper introduces Golo, a simple dynamic programming language for the Java Virtual Machine (JVM) that has been designed to leverage the capabilities of the new Java 7 invokedynamic instruction and API (JSR 292). Golo has its own language constructs ...
A framework for analyzing context-oriented programming languages
AbstractContext-aware systems keep on emerging as an intrinsic part of everyday activities. To cope with such situations, programming languages are extended to support the notion of context. Although context-oriented programming languages exist for over ...
Highlights- Conceptualizing context-oriented development.
- A framework for analyzing context-oriented programming languages.
- Analysis of three context-oriented programming languages: Subjective-C, ServalCJ, COBPjs.
- Findings: Context-...
Towards a framework for analyzing context-oriented programming languages
COP '21: Proceedings of the 13th ACM International Workshop on Context-Oriented Programming and Advanced ModularityContext-aware systems keep on emerging in all of our daily activities. To cope with this new situation, programming languages were extended to support the notion of context. Although context-oriented programming languages exist for over 15 years, they ...
Comments