CJAdviser: SMT-based debugging support for ContextJ

  • Authors:
  • Shizuka Uchio;Naoyasu Ubayashi;Yasutaka Kamei

  • Affiliations:
  • Kyushu University, Fukuoka, Japan;Kyushu University, Fukuoka, Japan;Kyushu University, Fukuoka, Japan

  • Venue:
  • Proceedings of the 3rd International Workshop on Context-Oriented Programming
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Context-awareness plays an important role in developing flexible and adaptive software. However, it is not easy to write context-aware programs because context cannot be treated as a module in the traditional programming languages. COP (Context-Oriented Programming) languages such as ContextJ* enable programmers to describe the context-aware behavior elegantly. The primary system behavior can be separated from the context-aware behavior. On the other hand, unfortunately, it becomes difficult to debug the programs due to the complexity of COP execution and the dependence between objects and contexts. To deal with this problem, this paper proposes CJAdviser, SMT-based debugging support for ContextJ*. In CJAdviser, the execution trace of a ContextJ* program is converted to a context dependence graph that can be analyzed by the SMT (Satisfiability Modulo Theories) solver Yices. Using CJAdviser, we can check a variety of object-context dependencies such as "Do two objects A and B exist in the Context X at the same time?". In CJAdviser, SMT is applied to not static analysis but dynamic analysis because many context-aware properties are determined at run time.