ホーム
Zのソフトウェア
Zの開発者ツール
XL C/C++ for z/VM
IBM XL C/C++ for z/VMは、大規模で複雑な計算集約型アプリケーションの開発用に最適化されたコンパイラーです。IBM Zシステム・ハードウェア用に最適化されたCおよびC++アプリケーションを作成できます。
IBM XL C/C++ for z/VMは、、z/VMプラットフォーム上の言語を中心とするC/C++アプリケーション開発環境であり、z/OS® XL C/C++のz/VM対応バージョンです。C/C++コンパイラー・コンポーネント(通称「XL C/C++コンパイラー」)とC/C++アプリケーション開発用の一部ユーティリティーを含みます。
上位変換をサポートすることで、ループのパフォーマンスを改善するように最適化が図られます。コンパイラーの最高かつ最も積極的な最適化レベルであるOPTIMIZE(3)(略称「OPT(3)」) をサポートします。
ISO/IEC 9899:1999国際規格(C99)、ANSI/ISO 1998 C++規格、および規格に適合するCコンパイラーに準拠しており、C++標準ライブラリが含まれています。
業界標準に沿って、IBMおよびIBM以外の両方のプラットフォームからz/VMへのアプリケーションの移植を簡素化します。
OPT(3)のサポートに伴い、ループの展開解除オプションやプログラム、複数の新しい組み込み機能など、アプリケーションのパフォーマンスの向上に役立つオプションとプログラムを導入しています。OPT(0)、OPT(2)、およびOPT(3)オプションを使用すると、包括的な低レベルのものからより広範なものまで複数の最適化レベルを取得して実行できます。
IBM XL C/C++ for z/VMには、入出力(I/O)操作を実行するためのC++Standard I/O Stream Library、複素数を操作するためのC++ Standard Complex Mathematics Library、およびC++テンプレート・ベースのアルゴリズム、コンテナ・クラス、イテレーター、ローカリゼーション・オブジェクト、および文字列クラスで構成される標準テンプレート・ライブラリー(STL)が含まれています。
IBM XL C/C++ for z/VMは、Cの型定義を通じて、およびC++のネイティブ型としてchar16_t型とchar32_t型のサポートを追加して、これらの型を使用するコードをz/OS®に移植しやすくしています。
ステートメント表現構造のCサポートにより、プログラマーは式内でループ、スイッチ、ローカル変数を使用できます。 CとC++は、可変長オブジェクトのヘッダーとしてゼロ拡張配列構造をサポートしています。 こうした特長により、他のプラットフォーム上でこれらの構成を使用するC/C++コードをXL C/C++ for z/VMに移植することが容易になります。
RESTRICTオプションでは、すべての関数または指定された関数のパラメーター・ポインターが互いに素であることがコンパイラーに示されます。コンパイラーは、RESTRICT オプションが有効な場合、より詳細なポインター分析を実行します。 これにより、コンパイル中のアプリケーションのパフォーマンス向上を目指します。
IBM XL C/C++ for z/VMを使用すると、各ソース・ファイルに使用されるコンパイラー・オプションの表現が簡潔になります。また、各コンパイル単位の実行可能ファイルに保存されたオプション文字列が作成されます。コンパイラーは、コンパイル中にアクティブだったすべてのコンパイラー・コンポーネントのバージョン情報を記録します。この新機能は、ランタイムに関連する問題の診断に役立ちます。
SEVERITYオプションを選択すると、コンパイラーによって出力される一部の診断メッセージの重大度を変更できます。この機能により、ユーザーのコーディング標準に合わせて特定の診断メッセージのレベルをカスタマイズできます。
コンパイラーによって生成されるソース・リストは、各関数の開始オフセットがリストに追加されるように拡張されます。各関数の開始オフセットは、通常、デバッグ目的に役立ちます。最適化レベルO2またはO3 を使用してコンパイルされたコードで、最適化されたコードをデバッグすると、関数の名前とアドレス、およびパラメーターの名前、型、および値を表示できます。