Skip to main content

Software  >  Software Development  >  C and C++ Compilers  >  

VisualAge C++

Features and benefits

Note: See the XL C/C++ Web pages for the latest information on our industry-leading C/C++ compiler.   XL C/C++ is the follow-on product to VisualAge C++.

IBM VisualAge C++ supports iSeries™ and pSeries™ servers running AIX® and selected Linux® distributions. 

VisualAge C++ is part of a family of IBM compilers that support C and C++ programming on IBM's pSeries, iSeries, and zSeries™ platforms in addition to other third party platforms. Supported operating systems include AIX, Linux, z/OS®, z/VM®, OS/400® and Mac OS X.

The code base for all of these compilers (C and C++) is the same, making source-level portability of your applications between IBM platforms easier than ever before. Our compilers also adhere to international standards and industry specifications, making it easier for you to port your applications to IBM platforms from other non-IBM platforms.

The following sections describe key features of IBM VisualAge C++.

Conformance to industry language standards
The C and the C++ compilers conform to the latest ISO/IEC International Standards. The C compiler supports the latest ISO C 1999 (International Standard ISO/IEC 9899:1999) standard, also known as C99. The C99 standard offers a number of additional language functions to promote portability of C programs, including:

  • Long Long
  • Bool
  • Pragma operator
  • Designated initialization
  • Empty new argument
  • Macro with variable number of args
  • Inline function specifier
  • Complex

The C++ compiler supports the latest ISO C++ 1998 (International Standard ISO/IEC 14882:1998) standard. Also, the C++ compiler within IBM VisualAge C++ supports a number of the latest approved clarifications from the standards committee, bringing the C++ compiler to the latest level of the standard.

The -qlanglvl compiler option is enhanced to support all of the available language levels that you can use to compile your code. These include the strict conformance to the latest C99 Standard, extended conformance to C99, conformance to the previous C89 Standard, or enabling of C99 with the universal character set. VisualAge C++ offers you the flexibility to compile your code to the language level that you need.

OpenMP Support
The OpenMP is an industry specification describing a common set of APIs which support multiplatform symmetric multiprocessing (SMP) programming in C, C++, and Fortran on all architectures, including UNIX® platforms and Windows NT® platforms. Jointly defined by a group of major computer hardware and software vendors including IBM, OpenMP is a portable, scalable programming model designed to provide SMP programmers with a simple and flexible interface for developing shared-memory parallel applications for platforms ranging from the desktop to the supercomputer.

IBM C and C++ compilers on AIX and Linux contain full OpenMP support, including pragma directives, library functions, and environment variables that exploit shared memory parallelism. OpenMP pragmas fall into four general categories:

Parallel Constructs
These pragmas enable the programmer to define the parallel regions in which work is done by threads in parallel. Most of the OpenMP directives either statically or dynamically bind to an enclosing parallel region.
Worksharing Constructs
This category of pragmas enables the programmer to define how work will be distributed across the threads in a parallel region.
Synchronization Constructs
This category enables the programmer to control synchronization among threads.
Data Visibility
This category of pragmas enables the programmer to define the private/shared context of data within a parallel region.

Support for GNU C/C++
GCC is an open-source compiler collection for C, C++, Fortran, Objective C, and other languages. In order to help with the porting of code that was originally written for GCC, a subset of features related to GNU C and GNU C/C++ are supported by  VisualAge C++. Other GNU compiler features are recognized (accepted and ignored). This will help you minimize the number of changes that you need to make to your GCC source code to ensure that it compiles successfully with VisualAge C++.

32-bit and 64-bit application development
You can use our compilers to develop both 32-bit and 64-bit applications. The compilers provide support for 64-bit pointer and 64-bit addressability in SMP and serial code. High optimization levels, interprocedural analysis, and SMP are also supported for 64-bit code.

Ease of Porting
VisualAge C++ includes features that help you port existing code from AIX or other UNIX-based systems, as well as from code originally written for GNU C/C++. For example, by compiling with the -qinfo=por option, you can filter the diagnostic messages emitted by the compiler to show only those that pertain to portability issues. Also, the compiler supports a comprehensive subset of features related to GNU C and C++. Other GNU C and C++ features are recognized (accepted and ignored). This will help you minimize the number of changes that you need to make to your GCC source code to ensure that it compiles successfully using VisualAge C++ V6.0.

Compiler Optimizations
VisualAge C++ features IBM's best compiler optimization technology. Through compiler options, directives, and pragmas, programmers are offered with a number of ways to optimize their code. Using the -O2, -O3, -O4, and -O5 options, you can obtain optimization levels that run from comprehensive low-level optimizations to more extensive optimizations that include Interprocedural analysis, loop optimization, and automatic machine tuning. Other options for optimization include:

  • -qarch, -qtune, and -qcache that allow you to optimize your application to the specific processor architectures supported by the version of the compiler you are using, including POWER3, POWER4, and G5.
  • -qhot allows for high-order transformations, which are optimizations that specifically improve performance of loops through techniques such as interchange, fusion, and unrolling.
  • -qipa invokes interprocedural analysis (IPA) that enables the compiler to optimize across different files (whole-program analysis), and can result in significant performance improvements.
  • -qpdf (that is profile-directed feedback) uses results from sample program execution to fine tune optimizations in conditional branches and frequently executed code sections.
  • -qsmp generates threaded code needed to exploit shared-memory parallel processing leading to high-performance code.

Optimizations exploiting select processor architectures
VisualAge C++ V6.0 supports the PowerPC architecture found in the iSeries and pSeries system platforms. The -qarch and -qtune suboptions let you instruct the compiler to generate code optimized for your chosen target processor or processor family.

VisualAge C++ V6.0 also supports a number of special built-in functions for the PowerPC architecture.

Enhanced template handling
Template instantiation has been improved for faster compilation and the generation of smaller objects. The compiler options -qtemplaterecompile and -qtemplateregistry are provided to enable this improved template instantiation.

Comprehensive Help System
Help is online and in HTML format, so if you've browsed the World Wide Web, you already know how to use it effectively. The online help is optimized for fast access to information on every component in VisualAge C++. Most information is also provided in Adobe Acrobat PDF format.

Text-based man page help is available directly from your command line. This help will give you a quick reference for the format and argument description for all compiler options.

View prices and buy

View pricing

Buy online


We're here to help

Easy ways to get the answers you need.

 E-mail us

or call us at
877-426-3774
Priority code:
104CBW67


Technical details

Software withdrawal: Selected VisualAge C++ programs

VisualAge C++ V6.0 for AIX, Announcement

VisualAge C++ V6.0 for Linux, Announcement


Industry standards

ISO C 1999

ISO C++ 1998

OpenMP Specifications