Transforming C++11 Code to C++03 to Support Legacy Compilation Environments

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Antal, Gábor, Havas, Dávid, Siket, István, Beszédes, Árpád, Ferenc, Rudolf, Mihalicza, József
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866909200449273856
author Antal, Gábor
Havas, Dávid
Siket, István
Beszédes, Árpád
Ferenc, Rudolf
Mihalicza, József
author_facet Antal, Gábor
Havas, Dávid
Siket, István
Beszédes, Árpád
Ferenc, Rudolf
Mihalicza, József
contents Newer technologies - programming languages, environments, libraries - change very rapidly. However, various internal and external constraints often prevent projects from quickly adopting to these changes. Customers may require specific platform compatibility from a software vendor, for example. In this work, we deal with such an issue in the context of the C++ programming language. Our industrial partner is required to use SDKs that support only older C++ language editions. They, however, would like to allow their developers to use the newest language constructs in their code. To address this problem, we created a source code transformation framework to automatically backport source code written according to the C++11 standard to its functionally equivalent C++03 variant. With our framework developers are free to exploit the latest language features, while production code is still built by using a restricted set of available language constructs. This paper reports on the technical details of the transformation engine, and our experiences in applying it on two large industrial code bases and four open-source systems. Our solution is freely available and open-source.
format Preprint
id arxiv_https___arxiv_org_abs_2405_07204
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Transforming C++11 Code to C++03 to Support Legacy Compilation Environments
Antal, Gábor
Havas, Dávid
Siket, István
Beszédes, Árpád
Ferenc, Rudolf
Mihalicza, József
Software Engineering
Programming Languages
Newer technologies - programming languages, environments, libraries - change very rapidly. However, various internal and external constraints often prevent projects from quickly adopting to these changes. Customers may require specific platform compatibility from a software vendor, for example. In this work, we deal with such an issue in the context of the C++ programming language. Our industrial partner is required to use SDKs that support only older C++ language editions. They, however, would like to allow their developers to use the newest language constructs in their code. To address this problem, we created a source code transformation framework to automatically backport source code written according to the C++11 standard to its functionally equivalent C++03 variant. With our framework developers are free to exploit the latest language features, while production code is still built by using a restricted set of available language constructs. This paper reports on the technical details of the transformation engine, and our experiences in applying it on two large industrial code bases and four open-source systems. Our solution is freely available and open-source.
title Transforming C++11 Code to C++03 to Support Legacy Compilation Environments
topic Software Engineering
Programming Languages
url https://arxiv.org/abs/2405.07204