In plugin-based systems, plugin conflicts may occur when two or more plugins interfere with one another, changing their expected behaviors. It is highly challenging to detect plugin …
Module systems enable a divide and conquer strategy to software development. To implement compile-time variability in software product lines, modules can be composed in …
We investigate how to execute a unit test for all products of a product line without generating each product in isolation in a brute-force fashion. Learning from variability-aware analyses …
D Le, E Walkingshaw, M Erwig - 2011 IEEE Symposium on …, 2011 - ieeexplore.ieee.org
Maintaining variation in software is a difficult problem that poses serious challenges for the understanding and editing of software artifacts. Although the C preprocessor (CPP) is often …
S Chen, M Erwig - ACM SIGPLAN Notices, 2014 - dl.acm.org
Changing a program in response to a type error plays an important part in modern software development. However, the generation of good type error messages remains a problem for …
Editing the source code of variational software is complicated by the presence of variation annotations, such as# ifdef statements, and by code that is only included in some …
Variation is everywhere, and in the construction and analysis of customizable software it is paramount. In this context, there arises a need for variational data structures for efficiently …
Variation is central to today's software development. There are two fundamental dimensions to variation: Variation in time refers to the fact that software exists in numerous revisions that …
L Phipps-Costin, CJ Anderson, M Greenberg… - Proceedings of the ACM …, 2021 - dl.acm.org
Gradually typed languages allow programmers to mix statically and dynamically typed code, enabling them to incrementally reap the benefits of static typing as they add type annotations …