Transforming C++11 Code to C++03 to Support Legacy Compilation
Environments
Gábor Antal, Dávid Havas, István Siket, Árpád Beszédes, Rudolf
Ferenc and József Mihalicza
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.
Keywords: C++, source
code transformation, legacy systems, language backporting.
Back