Program reduction is a widely adopted, indispensable technique for debugging language implementations such as compilers and interpreters. Given a program ๐ and a bug triggered by ๐ , a program reducer can produce a minimized program $๐ ^โ$ that is derived from ๐ and still triggers the same bug. Perses is one of the state-of-the-art program reducers. It leverages the syntax of ๐ to guide the reduction process for efficiency and effectiveness. It is language-agnostic as its reduction algorithm is independent of any language-specific syntax. Conceptually to support a new language, Perses only needs the context-free grammar ๐บ of the language; in practice, it is not easy. One needs to first manually transform ๐บ into a special grammar form PNF with a tool provided by Perses, second manually change the code base of Perses to integrate the new language, and lastly build a binary of Perses.
This paper presents our latest work to improve the usability of Perses by extending Perses to perform ad hoc program reduction for any new language as long as the language has a context-free grammar ๐บ. With this extended version (referred to as $Perses^{ad}_{hoc}$), the difficulty of supporting new languages is significantly reduced: a user only needs to write a configuration file and execute one com- mand to support a new language in Perses, compared to manually transforming the grammar format, modifying the code base, and re-building Perses.
Our case study demonstrates that with $Perses^{ad}{hoc}$, the Perses-related infrastructure code required for supporting GLSL can be reduced from 190 lines of code to 20. Our extensive evaluations also show that $Perses^{ad}{hoc}$ is as effective and efficient as Perses in reducing programs, and only takes 20 seconds to support a new language, which is negligible compared to the manual effort required in Perses.
Tue 5 DecDisplayed time zone: Pacific Time (US & Canada) change
14:00 - 15:30 | Program Analysis IResearch Papers / Demonstrations / Industry Papers at Golden Gate C3 Chair(s): Michael Pradel University of Stuttgart | ||
14:00 15mTalk | An Automated Approach to Extracting Local Variables Research Papers Xiaye Chi Beijing Institute of Technology, Hui Liu Beijing Institute of Technology, Guangjie Li National Innovation Institute of Defense Technology, Weixiao Wang Beijing Institute of Technology, Yunni Xia Chongqing University, Yanjie Jiang Peking University, Yuxia Zhang Beijing Institute of Technology, Weixing Ji Beijing Institute of Technology Media Attached | ||
14:15 15mTalk | Incrementalizing Production CodeQL Analyses Industry Papers Tamรกs Szabรณ GitHub Next DOI Media Attached | ||
14:30 15mTalk | Statistical Reachability Analysis Research Papers Seongmin Lee Max Planck Institute for Security and Privacy (MPI-SP), Marcel Bรถhme Max Planck Institute for Security and Privacy Media Attached | ||
14:45 15mTalk | PPR: Pairwise Program Reduction Research Papers Mengxiao Zhang University of Waterloo, Zhenyang Xu University of Waterloo, Yongqiang Tian The Hong Kong University of Science and Technology; University of Waterloo, Yu Jiang Tsinghua University, Chengnian Sun University of Waterloo Media Attached | ||
15:00 15mTalk | When Function Inlining Meets WebAssembly: Counterintuitive Impacts on Runtime Performance Research Papers Pre-print Media Attached | ||
15:15 7mTalk | Ad Hoc Syntax-Guided Program Reduction Demonstrations Jia Le Tian University of Waterloo, Mengxiao Zhang University of Waterloo, Zhenyang Xu University of Waterloo, Yongqiang Tian The Hong Kong University of Science and Technology; University of Waterloo, Yiwen Dong , Chengnian Sun University of Waterloo Media Attached |