Fri 17 Jun 2022 13:30 - 13:50 at Macaw - Melange Chair(s): Rachit Nigam

A software analysis is a computer program that takes some representation of a software product as input and produces some useful information about that product as output. A software product line encompasses \emph{many} software product variants, and thus existing analyses can be applied to each of the product variations individually, but not to the entire product line as a whole. Enumerating all product variants and analyzing them one by one is usually intractable due to the combinatorial explosion of the number of product variants with respect to product line features. Several software analyses (e.g., type checkers, model checkers, data flow analyses) have been redesigned/re-implemented to support variability. This usually requires a lot of time and effort, and the variability-aware version of the analysis might have new errors/bugs that do not exist in the original one.

Given an analysis program written in a functional language based on PCF, in this paper we present two approaches to transforming (lifting) it into a semantically equivalent variability-aware analysis. A light-weight approach (referred to as \emph{shallow lifting}) wraps the analysis program into a variability-aware version, exploring all combinations of its input arguments. Deep lifting, on the other hand, is a program rewriting mechanism where the syntactic constructs of the input program are rewritten into their variability-aware counterparts. Compositionally this results in an efficient program semantically equivalent to the input program, modulo variability.

We present the correctness criteria for functional program lifting, together with correctness proof sketches of our program transformations. We evaluate our approach on a set of program analyses applied to the BusyBox C-language product line.

Fri 17 Jun

Displayed time zone: Pacific Time (US & Canada) change

13:30 - 14:50
MelangeSIGPLAN Track at Macaw
Chair(s): Rachit Nigam Cornell University
13:30
20m
Talk
(OOPSLA 2020) Automatic and Efficient Variability-Aware Lifting of Functional Programs
SIGPLAN Track
Ramy Shahin University of Toronto, Marsha Chechik University of Toronto
13:50
20m
Talk
(OOPSLA 2021) Safer at Any Speed: Automatic Context-Aware Safety Enhancement for Rust
SIGPLAN Track
Natalie Popescu Princeton University, Ziyang Xu Princeton University, Sotiris Apostolakis Google, David I. August Princeton University, Amit Levy
Link to publication DOI Authorizer link Pre-print
14:10
20m
Talk
(OOPSLA 2021) The semantics of shared memory in Intel CPU/FPGA systems
SIGPLAN Track
Dan Iorga Imperial College London, Alastair F. Donaldson Imperial College London, Tyler Sorensen University of California at Santa Cruz, John Wickerson Imperial College London
Link to publication DOI Authorizer link Pre-print
14:30
20m
Talk
(PLDI 2020) Efficient Handling of String-Number Conversion
SIGPLAN Track
Parosh Aziz Abdulla Uppsala University, Sweden, Mohamed Faouzi Atig Uppsala University, Sweden, Yu-Fang Chen Academia Sinica, Taiwan, Bui Phi Diep Uppsala University, Sweden, Julian Dolby IBM Research, USA, Petr Janků Brno University of Technology, Czechia, Hsin-Hung Lin Academia Sinica, Taiwan, Lukáš Holík Brno University of Technology, Wei-Cheng Wu University of Southern California, USA