Abstract:
łambdaVL is a core calculus based on the concept of programming with versions that supports multiple versions of program definitions and values inherently in the semantics of a language. However, since łambdaVL was not designed as a surface language, its complex syntax and semantics only provide primitive constructs to manipulate versioned values. In order to realize the programming with versions concept in a real-world language, we propose a compilation method for functional languages through łambdaVL and discuss how real-world programs can be written in a Haskell-like functional language with versions.
Reference:
A Step toward Programming with Versions in Real-World Functional Languages (Yudai Tanabe, Lubis Luthfan Anshar, Tomoyuki Aotani and Hidehiko Masuhara), In COP 2022: International Workshop on Context-Oriented Programming and Advanced Modularity (Collocated with ECOOP), ACM, 2022.
Bibtex Entry:
@inproceedings{tanabe2022cop,
author = {Yudai Tanabe and Lubis Luthfan Anshar and Tomoyuki Aotani and Hidehiko Masuhara},
title = {A Step toward Programming with Versions in Real-World Functional Languages},
booktitle = {COP 2022: International Workshop on Context-Oriented Programming and Advanced Modularity (Collocated with ECOOP)},
year = 2022,
isbn = {9781450399869},
publisher = {{ACM}},
address = {New York, NY, USA},
abstract = {\lambda{}VL is a core calculus based on the concept of programming with versions that supports multiple versions of program definitions and values inherently in the semantics of a language. However, since \lambda{}VL was not designed as a surface language, its complex syntax and semantics only provide primitive constructs to manipulate versioned values. In order to realize the programming with versions concept in a real-world language, we propose a compilation method for functional languages through \lambda{}VL and discuss how real-world programs can be written in a Haskell-like functional language with versions.},
pages = {44--51},
numpages = {8},
keywords = {software product lines, Coeffects, Program evolution, Graded modal types, dependencies},
location = {Berlin, Germany},
series = {COP '22},
month = jun,
url = {https://2022.ecoop.org/details/COP-2022-papers/4/A-Step-toward-Programming-with-Versions-in-Real-World-Functional-Languages},
pdf = {cop2022.pdf}
}