More about HKUST
Deforestation: Techniques for Removing Intermediate Data Structures
PhD Qualifying Examination Title: "Deforestation: Techniques for Removing Intermediate Data Structures" by Mr. Yijia CHEN Abstract: Deforestation is a compiler optimization that removes intermediate data structure allocations from functional programs to improve their efficiency. Functional programming style usually encourages programmers to write smaller functions and reuse them to build larger ones. This makes code more modular and helps to improve the clarity and robustness of programs because programmers can focus on smaller tasks and then compose those functions later. However, because values need to be created and passed between different functions to "glue" them together, programming in this style often leads to more allocations of intermediate data structures, which harms the efficiency of programs. This motivates the idea of deforestation, which aims at removing unnecessary allocations of data structures. In this article, we study various approaches to tackle the problem by following two general frameworks. The first class of methods falls into the unfold/fold framework, where function definitions are extensively inlined in the unfolding process to approximate the execution of input programs, and output programs are then extracted with the help of the folding process, which ties recursive knots and generates more efficient function definitions. The second class of methods belongs to the shortcut fusion framework, where special combinators capturing the essence of producing and consuming data structures are designed. These combinators can usually be deforested easily, and general data structure manipulating functions can be rewritten in them to be transformed. We illustrate the core ideas for both frameworks, demonstrate a comparison between them, and propose a novel method leveraging subtype inference to solve the problem. Date: Wednesday, 3 July 2024 Time: 9:00am - 11:00am Venue: Room 3494 Lifts 25/26 Committee Members: Dr. Lionel Parreaux (Supervisor) Dr. Jiasi Shen (Chairperson) Prof. Shing-Chi Cheung Dr. Amir Goharshady