A Functional Programming Language with VersionsVol. 6
While modern software development heavily uses versioned packages, programming languages rarely support the concept of versions in their semantics, which makes software updates more bulky and unsafe. This paper proposes a programming language that intrinsically supports versions. The main goals are to design core language features to support multiple versions in one program and establish a proper notion of type safety with those features. The proposed core calculus, called Lambda VL, has versioned values, each containing different values under different versions. We show the construction of the type system as an extension of coeffect calculus by mapping versions to computational resources. The type system guarantees the existence of a valid combination of versions for a program. The calculus enables programming languages to use multiple versions of a package within a program. It will serve as a basis for designing advanced language features like module systems and semantic versioning.
Tue 12 AprDisplayed time zone: Lisbon change
06:00 - 09:00 | ‹Programming› Online TuesdayResearch Papers / at Virtual Space Chair(s): Theo D'Hondt Vrije Universiteit Brussel | ||
06:00 25mTalk | Day 2 Opening | Bitrot Revisited: Local First Software and Orthogonal Synchronization Gilad Bracha F5 | ||
06:25 25mResearch paper | A Transient Semantics for Typed RacketVol. 6 Research Papers Ben Greenman Brown University, Lukas Lazarek Northwestern University, Christos Dimoulas PLT @ Northwestern University, Matthias Felleisen Northeastern University Link to publication | ||
06:50 25mResearch paper | A Functional Programming Language with VersionsVol. 6 Research Papers Yudai Tanabe Tokyo Institute of Technology, Luthfan Anshar Lubis , Tomoyuki Aotani Tokyo Institute of Technology, Hidehiko Masuhara Tokyo Institute of Technology Link to publication | ||
07:15 25mResearch paper | An Optimised Flow for Futures: From Theory to PracticeVol. 6 Research Papers Link to publication |