An Interpreter-based Framework for Static Analysis of Variability in Space and Time - Vieira, Tayná; Alves, Vander; Teixeira, Leopoldo (Anais do Simpósio Brasileiro de Linguagens de Programação (SBLP); 2025: Anais do XXIX Simpósio Brasileiro de Linguagens de Programação, 2025)
Software Product Lines (SPLs) enable the systematic development of configurable software systems by organizing products as families that share commonalities and differ in selected features. However, static analysis in SPLs poses scalability challenges due to variability in space (across configurations) and variability in time (across software revisions). This paper presents an interpreter-based framework that combines variational lifting and memoization to support scalable and reusable static analysis of evolving SPLs. Analyses are implemented as PCF+ programs and executed over variational representations of object programs, annotated with presence conditions. Memoization mechanisms allow the reuse of previously computed results across object program evolutions, reducing redundant computations and contributing to performance improvements. The framework is evaluated using benchmarks simulating software evolution scenarios. Results indicate that the combined use of variational lifting and memoization effectively reduces execution time, suggesting the advantages of addressing both dimensions of variability. This work contributes a reusable infrastructure for control-flow-based analyses in SPLs and provides empirical evidence supporting its efficiency.