Compilation Semantics for a Programming Language with Versions
Programming with versions is a paradigm that allows a program to use multiple versions of a module so that the programmer can selectively use functions from both older and newer versions of a single module. While previous work showed λVL, a core calculus for programming with versions, it has not been integrated into practical programming languages. In this paper, we propose VL, a Haskell-based surface language for λVL along with its compilation method. VL leverages Girard’s translation, a newly proposed bundling process, and a type and version inference algorithm to support multiple versions of modules with minimal version annotations. The paper gives a formal definition of the inference algorithm and an implementation of a compiler. A case study shows that VL can support a scenario of software evolution that happened in practice.
Mon 27 NovDisplayed time zone: Beijing, Chongqing, Hong Kong, Urumqi change
| 10:30 - 12:00 | |||
| 10:3030m Talk | Compilation Semantics for a Programming Language with Versions APLAS 2023 Yudai Tanabe Kyoto University, Luthfan Anshar Lubis Tokyo Institute of Technology, Tomoyuki Aotani Sanyo-Onoda City University, Hidehiko Masuhara Tokyo Institute of Technology | ||
| 11:0030m Talk | What Types are Needed for Typing Dynamic Objects? A Python-based Empirical Study APLAS 2023 Ke Sun Peking University, Sheng Chen University of Louisiana at Lafayette, Meng Wang University of Bristol, Dan Hao Peking University | ||
| 11:3030m Talk | Types and Semantics for Extensible Data Types APLAS 2023 | ||



