Feature-Oriented Programming and Context-Oriented Programming: Comparing Paradigm Characteristics by Example Implementations
Software variability can be supported by providing adaptations on top of a program's core behavior. For defining and composing adaptations in a program, different paradigms have been proposed. Two of them are feature-oriented programming and context-oriented programming. This paper compares an exemplar implementation of each paradigm. For the comparison, a common case study is used in which the authors detail how adaptations are defined, expressed, and composed in each paradigm. Based on the case study, they uncover similarities and differences of each implementation, and derive a set of characteristics that identify each of them.