Variability-aware Datalog
This work addresses the need for efficient program analysis in variable software systems, but it is incremental as it adapts an existing Datalog engine to handle variability.
The paper tackled the problem of efficiently applying Datalog programs to variable inputs, such as in Software Product Lines, by developing a variability-aware version of the Soufflé Datalog engine that computes presence conditions for inferred facts and eliminates invalid ones, evaluating it to measure overhead in processing time and database size.
Variability-aware computing is the efficient application of programs to different sets of inputs that exhibit some variability. One example is program analyses applied to Software Product Lines (SPLs). In this paper we present the design and development of a variability-aware version of the Soufflé Datalog engine. The engine can take facts annotated with Presence Conditions (PCs) as input, and compute the PCs of its inferred facts, eliminating facts that do not exist in any valid configuration. We evaluate our variability-aware Soufflé implementation on several fact sets annotated with PCs to measure the associated overhead in terms of processing time and database size.