Contextual information plays an ever-increasing role in our information-centric world. Current-day software systems adapt continuously to changing execution and usage contexts, even while running. Unfortunately, mainstream programming languages and development environments still do not support this kind of dynamicity very well, leading developers to implement complex designs to anticipate various dimensions of variability.
Context-Oriented Programming directly supports variability at the programming level, depending on a wide range of dynamic attributes. It enables run-time behavior to be dispatched directly on any detected properties of the execution or user context. Since more than a decade, researchers have been working on a variety of notions approaching that idea. Implementations ranging from first prototypes to mature platform extensions used in commercial deployments have illustrated how multidimensional dispatch can be supported effectively to achieve expressive run-time variation in behavior.
The scope of this workshop will further encompass diverse and advanced forms of modularity support in programming languages. We encourage results and discussions on advanced modularity that go beyond COP.
Call for Papers
COP invites submissions of high-quality papers reporting original research, or describing innovative contributions to, or experience with context-oriented programming, its implementation, and application. Papers that depart significantly from established ideas and practices are particularly welcome.
All papers must be original. Submissions must not have been published previously and must not be simultaneously submitted or under review at any other refereed event or publication. The program committee will evaluate each contributed paper based on its relevance, significance, clarity, and originality.
Topics of interest to the workshop include, but are not limited to:
- Context-Oriented Programming (COP) and Contextual modeling in modern computer systems (mobile systems, IoTs, cloud/edge computing, autonomous systems, etc.);
- Programming language abstractions for COP (e.g., dynamic scoping, roles, traits, prototype-based extensions);
- Implementation issues for COP (e.g., optimization, VM support, JIT compilation);
- COP applications in computer systems (e.g., mobile systems, IoTs, cloud/edge computing, security);
- COP applications in autonomous systems (e.g., unmanned aerial vehicles, autonomous vehicles);
- Configuration languages (e.g., feature description interpreters, transformational approaches);
- Programming language abstractions for composition and modularization (e.g., modules, aspects, features, layers, plugins, libraries, components);
- Theoretical foundations and reasoning support for COP and modular systems (e.g., semantics, type systems, mechanized proofs);
- Software lifecycle support for modularization (e.g., requirements; architecture; synthesis; metrics; software product lines; economics; testing; patterns);
- Tool support for modular software development (e.g., platform; refactoring; static and dynamic analysis; evolution; reverse engineering; mining);
- Modular applications (e.g., data-intensive applications, micro-services, serverless computing);
Papers are to be submitted via EasyChair. They must be written in English, provided as PDF documents, and follow the new ACM Master Article Template with the sigconf option. They should not exceed 8 pages. Accepted papers will be published in the ACM Digital Library (SCOPUS).