Paper on Compilation of Functional Languages at ICFP 2019

Youyou Cong will present the following paper at ICFP 2019.

 

Title: Compiling with Continuations, or without? Whatever.

Authors: Youyou Cong, Leo Osvald, Gregory Essertel, and Tiark Rompf

Abstract:

What makes a good compiler IR?  In the context of functional languages, there has been an extensive debate on the advantages and disadvantages of continuation-passing-style (CPS).  The consensus seems to be that some form of explicit continuations is necessary to model jumps in a functional style, but that they should have a 2nd-class status, separate from regular functions, to ensure efficient code generation.  Building on this observation, a recent study from PLDI 2017 proposed a direct-style IR with explicit join points, which essentially represent local continuations, i.e., functions that do not return or escape.  While this IR can work well in practice, as evidenced by the implementation of join points in the Glasgow Haskell Compiler (GHC), there still seems to be room for improvement, especially with regard to the way continuations are handled in the course of optimization.

In this paper, we contribute to the CPS debate by developing a novel IR with the following features.   First, we integrate a control operator that resembles Felleisen’s C, eliminating certain redundant rewrites observed in the previous study.  Second, we treat the non-returning and non-escaping aspects of continuations separately, allowing efficient compilation of well-behaved functions defined by the user.  Third, we define a selective CPS translation of our IR, which erases control operators while preserving the meaning and typing of programs.  These features enable optimizations in both direct style and full CPS, as well as in any intermediate style with selectively exposed continuations.  Thus, we change the spectrum of available options from “CPS yes or no” to “as much or as little CPS as you want, when you want it”.

Sending off 5 members

We are sending off five members in these months.

  • Jeanie Adkisson, who is to finish her Master’s degree, will move to Canada and work in a public sector.
  • Tomoyuki Aotani, who has been served as an assistant professor from the foundation of the group, will pursuit professional experiences in industry.
  • Li Dongfang, who is to finish his Master’s degree, starts working at Institute of Advanced Artificial Intelligence in Nanjing.
  • Matthias Springer, who is to finish his Doctoral degree, will work for Google.
  • Chengkai Yang, who is to finish the Tokyo Tech Summer Program, will go back Georgia Tech, his home university.

We wish for their bright future, and hope we can see each other soon!