XL C/C++ for AIX: A Modern Language With Enhanced Usability
Going forward, the strategy to leverage open-source Clang technology will enable IBM C/C++ compilers to stay much more current with language standards.
By Jeff Heath11/01/2019
With a reputation for flexibility and efficiency, C++ continues to be a highly popular programming language. It has been deployed in a wide array of applications, including complex business and trading applications, game development, high-performance computing and OSes, including AIX*, to name a few.
Continued Popularity of C++
Several different indexes demonstrate the continued popularity of C++ as a programming language. The Popularity of Programming Language Index (PYPL) rates C++ as the No. 6 programming language, using Google searches on language tutorials as a gauge.
The RedMonk Programming Language Rankings uses an intersection of the number of GitHub repositories and Stack Overflow mentions to assess popularity, ranking C++ as the No. 5 programming language.
The TIOBE index, ranking C++ as No. 5, assesses programming language popularity based on the number of skilled engineers worldwide, courses and third-party vendors using a variety of search engines. C++ remains a prominent programming language as evidenced by many different assessment methodologies.
What’s Modern C++?
The C++ language has undergone a major transformation over the past decade. C++11 introduced many new language features, including lambdas, generalized constant expressions, auto and decltype, smart pointers, and hash tables. These language features were added largely as a result of user demand, and many became quite popular among C++ developers. C++11 also marked a turning point for the C++ language committee, changing its approach to publishing new language standards. Since C++11 was ratified in 2011, two new revisions have been made to the language, colloquially known as C++14 and C++17. It’s clear that language evolution will continue, as will the momentum for modern C++.
The TIOBE Index notes that one of the drivers behind the continued popularity of the C++ language is the introduction of C++11, which “has made the language much simpler, safer and more expressive at the same time.” Software developers have been enthusiastic in their adoption of modern C++ as compiler support for C++11 and beyond has become much more available. The latest language standards are almost fully implemented in popular open-source C++ compilers such as Clang and GCC as soon as the language standards are ratified, meaning that software developers have access to the newest features almost immediately. A number of prominent open-source C++ projects have adopted C++11 and beyond, including such projects as the Boost libraries, QT, Poco and a number of JSON libraries, to name a few.
Modern C++ on AIX
XL C/C++ is the premier C/C++ compiler on POWER*. XL C/C++ for AIX has consistently delivered significant performance improvements with each new release, enabling users to maximize their investment in IBM Power Systems* by upgrading to the latest available compilers. The newest XL C/C++ for AIX compiler embraces open-source Clang technology to accelerate delivery of C++ language support.
Clang is part of the LLVM open-source compiler toolchain project, which provides a C and C++ language implementation. It was first introduced as a portion of the IBM XL C/C++ for Linux* compilers front-end in V13.1.1, and this technology has now been enabled for AIX as well. XL C/C++ for AIX V16.1.0 introduces a new invocation called xlclang++, which leverages part of the Clang front-end to provide modern C++ language support.
As a result, the recent release of XL C/C++ for AIX V16.1.0 provides the first fully supported C++11 and C++14 compiler on AIX. In addition to gaining modern C++ language support, Clang also provides users with a much more disciplined and consistent message system. This allows programmers to find errors in their code with much more ease and ultimately enables them to produce higher quality applications.
The IBM XL C/C++ compiler maintains the advanced optimization technology from the XL compiler back-end. With XLC/C++ for AIX V16.1.0, the compiler back-end has been enhanced for maximum enablement and exploitation of the POWER9* system. This includes tuning compiler optimizations for top performance on POWER9, rebuilding the IBM Mathematical Acceleration Subsystem (MASS) library specifically for POWER9, and adding new POWER9 instructions and built-in functions.
The Best of Both Worlds
With XL C/C++ for AIX V16.1.0, enterprise-level development using modern C++ on AIX is now possible. XL C/C++ for AIX fully embraces open-source Clang technology; as a result C++ developers can utilize powerful new language features with their AIX applications. AIX users can leverage the latest open-source C++ applications and maximize performance on the Power Systems platform.
Going forward, the strategy to leverage open-source Clang technology will enable IBM C/C++ compilers to stay much more current with language standards. XL C/C++ for AIX marries the best of both worlds, getting modern C++ language and usability features from Clang technology while also providing the advanced optimization technology offered by the XL C/C++ compilers.
Jeff Heath is an offering and software development manager for Compilers with IBM, responsible for XL C/C++ and LLVM for AIX.