BatakJava']Java: An Object-Oriented Programming Language with Versions

被引:1
作者
Lubis, Luthfan Anshar [1 ]
Tanabe, Yudai [1 ]
Aotani, Tomoyuki [2 ]
Masuhara, Hidehiko [1 ]
机构
[1] Tokyo Inst Technol, Tokyo, Japan
[2] Mamezou Co Ltd, Tokyo, Japan
来源
PROCEEDINGS OF THE 15TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON SOFTWARE LANGUAGE ENGINEERING, SLE 2022 | 2022年
关键词
backward compatibility; dependency problem; !text type='Java']Java[!/text;
D O I
10.1145/3567512.3567531
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Programming with versions is a recent proposal that supports multiple versions of software components in a program. Though it would provide greater freedom for the programmer, the concept is only realized as a simple core calculus, called..VL, where a value consists of lambda-terms with multiple versions. We explore a design space of programming with versions in the presence of data structures and module systems, and propose BatakJava, an object-oriented programming language in which multiple versions of a class can be used in a program. This paper presents BatakJava's language design, its core semantics with subject reduction, an implementation as a source-to-Java translator, and a case study to understand how we can exploit multiple versions in BatakJava for developing an application program with an evolving library.
引用
收藏
页码:222 / 234
页数:13
相关论文
共 31 条
[1]  
Apel S, 2008, GPCE'08: PROCEEDINGS OF THE ACM SIGPLAN SEVENTH INTERNATIONAL CONFERENCE ON GENERATIVE PROGRAMMING AND COMPONENT ENGINEERING, P101
[2]  
Appeltauer Malte, 2011, Information and Media Technologies, V6, P399
[3]  
Bogart Chris, 2021, ACM Trans. Softw. Eng. Methodol, V1, P10
[4]   How to Break an API: Cost Negotiation and Community Values in Three Software Ecosystems [J].
Bogart, Christopher ;
Kastner, Christian ;
Herbsleb, James ;
Thung, Ferdian .
FSE'16: PROCEEDINGS OF THE 2016 24TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2016, :109-120
[5]  
Brito A, 2018, 2018 25TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER 2018), P255, DOI 10.1109/SANER.2018.8330214
[6]   Deep Semantic Versioning for Evolution and Variability [J].
Carvalho, Luis ;
Seco, Joao Costa .
PROCEEDINGS OF THE 23RD INTERNATIONAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING, PPDP 2021, 2021,
[7]   Software Evolution with a Typeful Version Control System [J].
Carvalho, Luis ;
Seco, Joao Costa .
SOFTWARE ENGINEERING AND FORMAL METHODS (SEFM 2019), 2019, 11724 :145-161
[8]  
Chen Sheng, 2016, 30 EUR C OBJ OR PROG
[9]  
Ernst E., 2001, ECOOP 2001 - Object-Oriented Programming. 15th European Conference. Proceedings (Lecture Notes in Computer Science Vol.2072), P303
[10]   The Choice Calculus: A Representation for Software Variation [J].
Erwig, Martin ;
Walkingshaw, Eric .
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2011, 21 (01)