本章では、C コンパイラとそのオペレーティング環境、準拠規格、コンパイラの構成、C 関連のプログラミングツールについて説明します。
C 4.2 でサポートされるオペレーティング環境については、README ファイルを参照してください。
本コンパイラは、C プログラミング言語に関する米国規格の ANSI/ISO 9899-1990 (ISO/IEC 9899:1990)、および FIPS 160 に準拠しています。このコンパイラは従来の K&R C もサポートしており、ANSI C への移行が容易に行えます。
本コンパイラからのエラー、警告などのメッセージは、原則として日本語で出力されます。ただし、一部のメッセージは、技術上の制限のため英語で出力されますので、ご了承ください。
C コンパイルシステムはコンパイラ、アセンブラ、およびリンカーから構成されます。cc コマンドは、コマンド行オプションで他の指定をしない限り、この 3 つの構成要素をそれぞれ自動的に起動します。
第 2 章「cc コンパイラオプション」では、cc コマンドで使用できるオプションについて説明しています。
図 1-1 に C コンパイルシステムの構成を示します。
表 1-1 は、構成要素の要約を示しています。
表 1-1 C コンパイラシステムの構成要素
構成要素 |
説明 |
使用するコマンド |
---|---|---|
cpp |
プリプロセッサ (前処理系) | -Xs |
acomp |
コンパイラ (-Xs 以外のモードではプリプロセッサが組み込まれている) |
|
iropt |
コードオプティマイザ (最適化部) |
(SPARC) -O、 -xO [2-5]、-fast |
cg386 |
中間言語への翻訳 |
(x86) 常に稼働 |
inline |
アセンブリ言語テンプレートのインライン展開 |
.il ファイルを指定 |
mwinline |
関数の自動インライン展開 |
(x86) -xO4、-xinline |
fbe |
アセンブラ |
|
cg |
コード生成、インライン機能、アセンブラ |
(SPARC) |
codegen |
コード生成 |
(x86) |
ld |
リンカー |
|
ild |
インクリメンタルリンカー |
(SPARC) -g、 -xildon |
C コンパイラのオプティマイザ (最適化部) は冗長性の削除、オプションでレジスタの割り当て、命令のスケジュール、コードの再構成などを行います。最適化には複数のレベルがあり、希望のレベルを選択することによって、ユーザーのアプリケーションの速さとメモリーの使用状況の関係を最適に保つことができます。
C プログラムの開発、保守、改良を行うときに役立つツールは多数あります。本書では、C にもっとも密接な 2 つのツール、cscope と lint について説明します。他のツールはSolaris のリファレンスマニュアルやプログラミングに関するドキュメントおよび『プログラムのパフォーマンス解析』でも説明しています。また、ツールごとにマニュアルページが用意されています。