Bringing Context to Mobile Platform Programming
  • Sebastián González
  • Nicolás Cardozo
  • Kim Mens
  • Alfredo Cádiz
  • Jean-Christophe Libbrecht
  • Julien Goffaux
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6563)


Thanks to steady advances in hardware, mobile computing platforms are nowadays much more connected to their physical and logical environment than ever before. To ease the construction of adaptable applications that are smarter with respect to their execution environment, the context-oriented programming paradigm has emerged. However, up until now there has been no proof that this emerging paradigm can be implemented and used effectively on mobile devices, probably the kind of platform which is most subject to dynamically changing contexts. In this paper we study how to effectively realise core context-oriented abstractions on top of Objective-C, a mainstream language for mobile device programming. The result is Subjective-C, a language which goes beyond existing context-oriented languages by providing a rich encoding of context interdependencies. Our initial validation cases and efficiency benchmarks make us confident that context-oriented programming can become mainstream in mobile application development.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Appeltauer, M., Hirschfeld, R., Haupt, M., Masuhara, H.: ContextJ: Context-oriented programming for Java. Computer Software of The Japan Society for Software Science and Technology (June 2010)Google Scholar
  2. 2.
    Bobrow, D., DeMichiel, L., Gabriel, R., Keene, S., Kiczales, G., Moon, D.: Common Lisp Object System specification. Lisp and Symbolic Computation 1(3/4), 245–394 (1989)Google Scholar
  3. 3.
    Cetina, C., Haugen, O., Zhang, X., Fleurey, F., Pelechano, V.: Strategies for variability transformation at run time. In: Proceedings of the International Software Product Line Conference, pp. 61–70. Carnegie Mellon University, Pittsburgh (2009)Google Scholar
  4. 4.
    Costanza, P., Hirschfeld, R.: Language constructs for context-oriented programming: an overview of ContextL. In: Proceedings of the Dynamic Languages Symposium, pp. 1–10. ACM Press, New York (2005); co-located with OOPSLA 2005Google Scholar
  5. 5.
    Desmet, B., Vallejos, J., Costanza, P., Kantarcioglu, M., D’Hondt, T.: Context-oriented domain analysis. In: Kokinov, B., Richardson, D.C., Roth-Berghofer, T.R., Vieu, L. (eds.) CONTEXT 2007. LNCS (LNAI), vol. 4635, pp. 178–191. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  6. 6.
    Garlan, D., Cheng, S.W., Huang, A.C., Schmerl, B., Steenkiste, P.: Rainbow: Architecture-based self-adaptation with reusable infrastructure. Computer 37(10), 46–54 (2004)CrossRefGoogle Scholar
  7. 7.
    González, S., Denker, M., Mens, K.: Transactional contexts: Harnessing the power of context-oriented reflection. In: International Workshop on Context-Oriented Programming, July 7, pp. 1–6. ACM Press, New York (2009)Google Scholar
  8. 8.
    González, S., Mens, K., Cádiz, A.: Context-Oriented Programming with the Ambient Object System. Journal of Universal Computer Science 14(20), 3307–3332 (2008)Google Scholar
  9. 9.
    González, S., Mens, K., Heymans, P.: Highly dynamic behaviour adaptability through prototypes with subjective multimethods. In: Proceedings of the Dynamic Languages Symposium, pp. 77–88. ACM Press, New York (2007)Google Scholar
  10. 10.
    Hirschfeld, R., Costanza, P., Haupt, M.: An introduction to context-oriented programming with contextS. In: Lämmel, R., Visser, J., Saraiva, J. (eds.) GTTSE 2007. LNCS, vol. 5235, pp. 396–407. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  11. 11.
    Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-oriented domain analysis (foda) feasibility study. Tech. Rep. CMU/SEI-90-TR-21, Carnegie-Mellon University Software Engineering Institute (November 1990)Google Scholar
  12. 12.
    Lee, J., Kang, K.C.: A feature-oriented approach to developing dynamically reconfigurable products in product line engineering. In: Proceedings of the International Software Product Line Conference, pp. 131–140. IEEE Computer Society Press, Los Alamitos (2006)Google Scholar
  13. 13.
    Libbrecht, J.C., Goffaux, J.: Subjective-C: Enabling Context-Aware Programming on iPhones. Master’s thesis, Ecole Polytechnique de Louvain, UCLouvain (June 2010)Google Scholar
  14. 14.
    von Löwis, M., Denker, M., Nierstrasz, O.: Context-oriented programming: Beyond layers. In: Proceedings of the 2007 International Conference on Dynamic languages, pp. 143–156. ACM Press, New York (2007)Google Scholar
  15. 15.
    Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering: Foundations, Principles and Techniques. Springer, Heidelberg (2005)CrossRefMATHGoogle Scholar
  16. 16.
    Popovici, A., Gross, T., Alonso, G.: Dynamic weaving for aspect-oriented programming. In: Proceedings of the International Conference on Aspect-Oriented Software Development, pp. 141–147. ACM Press, New York (2002)CrossRefGoogle Scholar
  17. 17.
    Smith, R.B., Ungar, D.: A simple and unifying approach to subjective objects. Theory and Practice of Object Systems 2(3), 161–178 (1996)CrossRefGoogle Scholar
  18. 18.
    Vallejos, J., González, S., Costanza, P., De Meuter, W., D’Hondt, T., Mens, K.: Predicated generic functions. In: Baudry, B., Wohlstadter, E. (eds.) SC 2010. LNCS, vol. 6144, pp. 66–81. Springer, Heidelberg (2010)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Sebastián González
    • 1
  • Nicolás Cardozo
    • 1
  • Kim Mens
    • 1
  • Alfredo Cádiz
    • 1
  • Jean-Christophe Libbrecht
    • 1
  • Julien Goffaux
    • 1
  1. 1.Computing Science Engineering PoleICTEAM, UCLouvainLouvain-la-NeuveBelgium

Personalised recommendations