Conditional Compilation is Dead, Long Live Conditional Compilation!NIER
Highly-configurable systems written in C form our most critical computing infrastructure. The preprocessor is integral to C, because conditional compilation enables such systems to produce efficient object code. However, the preprocessor makes code harder to reason about for both humans and tools. Previous approaches to this challenge developed new program analyses for unpreprocessed source code or developed new languages and constructs to replace the preprocessor. But having special-purpose analyses means maintaining a new toolchain, while new languages face adoption challenges and do not help with existing software. We propose the best of worlds: eliminate the preprocessor but preserve its benefits. Our design replaces preprocessor usage with C itself, augmented with syntax-preserving, backwards-compatible dependent types. We discuss automated conditional compilation to replicate preprocessor performance. Our approach opens new directions for research into new compiler optimizations, dependent types for configurable software, and automated translation away from preprocessor use.
Fri 31 MayDisplayed time zone: Eastern Time (US & Canada) change
16:00 - 17:20 | Program TransformationsNew Ideas and Emerging Results / Technical Track / Papers at Van-Horne Chair(s): Cindy Rubio-González University of California, Davis | ||
16:00 20mTalk | Global Optimization of Numerical Programs via Prioritized Stochastic Algebraic TransformationsTechnical Track Technical Track Xie Wang Nanjing University, Huaijin Wang Nanjing University, Zhendong Su ETH Zurich, Enyi Tang Nanjing University, Xin Chen Nanjing University, Weijun Shen Nanjing University, Zhenyu Chen Nanjing University, Linzhang Wang , Xianpei Zhang Nanjing University, Xuandong Li Nanjing University | ||
16:20 20mTalk | Type Migration in Ultra-Large-Scale CodebasesTechnical Track Technical Track Ameya Ketkar Oregon State University, USA, Ali Mesbah University of British Columbia, Davood Mazinanian University of British Columbia, Danny Dig School of EECS at Oregon State University, Eddie Aftandilian Google Pre-print | ||
16:40 20mTalk | Dynamic Slicing for AndroidTechnical Track Technical Track Tanzirul Azim Microsoft, USA, Arash Alavi University of California, Riverside, Iulian Neamtiu New Jersey Institute of Technology, Rajiv Gupta UC Riverside | ||
17:00 10mTalk | Conditional Compilation is Dead, Long Live Conditional Compilation!NIER New Ideas and Emerging Results Pre-print | ||
17:10 10mTalk | Discussion Period Papers |