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:30 30mTalk | 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:00 30mTalk | 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:30 30mTalk | Types and Semantics for Extensible Data Types APLAS 2023 |