XL C/C++ Advanced Edition は、PowerPC(R) アーキテクチャーで実行される Linux オペレーティング・システム用の 最適化標準コマンド行コンパイラーです。このコンパイラーは、拡張 C および C++ プログラム言語で 32 ビットおよび 64 ビット・アプリケーションを 作成および保守するためのプロフェッショナル・プログラミング・ツールです。
この資料 では XL C/C++ コンパイラーについて紹介します。 説明する内容は、さまざまなコンパイラー呼び出しと、 コンパイル環境をカスタマイズしてコンパイル・プロセスを制御する方法についてです。 この資料では、コンパイラーが実行できる変換のタイプ、 入出力可能なファイル・タイプ、コンパイラー・オプションのカテゴリー別の要約、 および既存アプリケーションの移植時の考慮事項も紹介します。 また、この資料では、 アプリケーションのパフォーマンスを最適化する方法も簡単に紹介します。 コンパイラーの機能を最適化すると、PowerPC プロセッサーの 多層アーキテクチャーを活用できます。
Linux および AIX(R) は、補完的なオペレーティング・システムです。IBM C for AIX または VisualAge(R) C++ Professional for AIX の知識を持っている方は、 その makefile を Linux プラットフォームで機能するように簡単に 適応させることができます。IBM C および C++ コンパイラーの初心者の方は、この資料でコンパイル、 リンク、および実行時にパフォーマンスを向上させる方法を学習することができます。
本書は、読者が C および C++ プログラム言語、Linux オペレーティング・システム、および bash シェルに ついての知識をもっていることを前提としています。
これらの例は、言語の使用方法を説明するもので、実行時間の最小化、ストレージの節約、 エラーのチェックを行うためのものではありません。 これらの例では、言語構成の使用についてのすべては説明しません。 例の中には、コードの一部分だけを示し、 コードを追加しないとコンパイルできないものもあります。
>>--- は、コマンド、ディレクティブ、またはステートメントの先頭を示します。
---> は、コマンド、ディレクティブ、またはステートメント構文が、 次の行に続いていることを示します。
>--- は、コマンド、ディレクティブ、またはステートメントが、 前の行から続いていることを示します。
--->< は、コマンド、ディレクティブ、またはステートメントの終わりを示します。
完全なコマンド、ディレクティブ、またはステートメント以外の構文単位の図は、 >--- 記号で始まり、---> 記号で終わります。
>>-statement--required_item------------------------------------><
>>-statement--+---------------+-------------------------------->< '-optional_item-'
いずれか 1 つの項目の選択が必須 の場合は、スタック内の項目のいずれか 1 つがメインパス上に記述されます。
>>-statement--+-required_choice1-+----------------------------->< '-required_choice2-'
いずれか 1 つの項目の選択がオプションの場合は、スタック全体がメインパスの下に記述されます。
>>-statement--+------------------+----------------------------->< +-optional_choice1-+ '-optional_choice2-'
デフォルト項目は、メインパスの上に記述されます。
.-default_item---. >>-statement--+-alternate_item-+-------------------------------><
.-----------------. V | >>-statement----repeatable_item-+------------------------------><
スタックの上の繰り返し矢印は、スタック内の項目から複数の項目を選択するか、1 つの項目を繰り返し選択できること を示しています。
変数は、イタリック体の小文字で記述されます (例えば、identifier)。 変数は、ユーザー提供の名前または値を表します。
次の構文図の例では、#pragma comment ディレクティブの構文を示しています。 #pragma ディレクティブの詳細については、「XL C/C++ ランゲージ・リファレンス」を参照してください。
(1) (2) (3) (4) (5) (6) (9) (10) >>-#--pragma--comment--(-------compiler---------------------------)->< | | +-----date----------------------------+ | | +-----timestamp-----------------------+ | | +--+--copyright--+--+-----------------+ | | | | +--user-------+ +--,-"characters"-+ (7) (8)
(1) 構文図の始まりを示します。
(2) 記号 # を最初に記述します。
(3) キーワード pragma は、記号 # の次に記述されます。
(4) プラグマの名前 comment は、キーワード pragma の次に記述します。
(5) 左括弧が必要です。
(6) コメントの型を、表示されている compiler、date、timestamp、copyright、 または user のうちいずれか 1 つだけ入力します。
(7) コンマが、コメントの型 copyright または user とオプションの文字ストリングの間に必要です。
(8) 文字ストリングをコンマの次に記述します。 文字ストリングは、二重引用符で囲みます。
(9) 右小括弧は必須です。
(10) これが、構文図の終わりを示します。
次の #pragma comment ディレクティブの例は、 上記のダイアグラムに従っており、構文上正しい例です。
#pragma comment(date) #pragma comment(user) #pragma comment(copyright,"This text will appear in the module")