ICFP 2019 での発表

叢悠悠が関数型言語の国際会議 ICFP 2019 で以下の論文を発表します。

 

タイトル: Compiling with Continuations, or without? Whatever.

著者: Youyou Cong, Leo Osvald, Gregory Essertel, and Tiark Rompf

概要:

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”.

5名の歓送会

5名のメンバーの歓送会を行いました。

  • Jeanie Adkissonは修士を修了し、カナダへと移住します。とある公的機関での仕事が待っているそうです。
  • 青谷知幸は、発足当初から研究室を支えてくれていましたが、ソフトウェア開発の実態を身を持って体験すべく、9月から某企業での新しいキャリアを開始するそうです。
  • 李東方は修士を修了し、南京人工智能高等研究院で働き始めます。
  • Matthias Springerは博士号を取得し、Google社に就職します。
  • Chengkai Yangは約2ヶ月のTokyo Tech Summer Programを修了して、ジョージア工科大学に戻ります。

みなさんの輝かしい未来を願ってやみません。近いうちに再会できることを願っています!