ツールとユーティリティー

このセクションでは、C コンパイル言語プログラムの開発に使用できるツールとユーティリティーの概要を示します。

C でコンパイルするプログラムの開発に役立つ多くのツールが用意されています。 これらのツールは、以下のプログラミング作業に役立ちます。

C コンパイル・プログラムで使用できるサブルーチンとシェル・コマンドが用意されています。

システムへのプログラムの入力

システムには、プログラムをファイルに入れるための ed と呼ばれるライン・エディターがあります。 システムには、 vi と呼ばれるフルスクリーン・エディターもあります。 このエディターは一度に 1 つのフルスクリーンでデータを表示するため、ファイルの対話式編集が可能です。

プログラムの検査

以下のコマンドを使って、プログラムのフォーマットの整合性と正確さを検査します。

コマンド 説明
cb プログラムの構造を示すために字下げレベルを使用して、C 言語ソース・プログラムを整合したフォーマットに再設定します。
cflow C 言語ソース・プログラムの論理のフローを示すダイアグラムを生成します。
cxref C 言語ソース・プログラムの各モジュールのすべての外部参照リストを、 参照が解決された場所とともに (参照がプログラム内で解決された場合) 生成します。
lint C 言語ソース・プログラムの構文とデータ型のエラーを検査します。 lint コマンドは、C 言語コンパイラーよりも詳細に構文とデータ型を検査し、 発生する可能性がある問題を指摘するメッセージを表示します。

ソース・コードをシステムが実行できるプログラムに変換するには、 コンパイラーとリンケージ・エディターを使用してソース・ファイルを処理する必要があります。

コンパイラー とは、ファイルからプログラム・テキストを読み取って、 そのファイル内のテキストを、システムが理解できる形に変更するプログラムのことです。 リンケージ・エディター は各プログラム・モジュールを接続し、 完成したプログラムをメモリーに置く方法を決定します。 このような最終の形のプログラムを作成するために、システムは以下のことを行います。

  1. ファイルにコンパイラーのソース・コードが入っている場合、 コンパイラーがソース・コードをオブジェクト・コードに変換します。
  2. ファイルにアセンブラー言語が入っている場合、 アセンブラーがアセンブラー言語をオブジェクト・コードに変換します。
  3. リンケージ・エディターは、以前のステップで作成されたオブジェクト・ファイルを、 コンパイラー・コマンドで指定されたその他の任意のオブジェクト・ファイルとリンクします。

オペレーティング・システムで使用できる他のプログラミング言語には、C++、FORTRAN、COBOL、アセンブラー、およびその他のコンパイラー言語があります。

1 つのプログラムの各部分を別々の言語で書いて、実行する個別のルーチンを 1 つのメインルーチンから呼び出して開始することができます。 また、コンパイラー・プログラムを使って、オブジェクト・コードを作成してプログラムをリンクすることもできます。

プログラムのエラーの修正

基本オペレーティング・システムに備えられている以下のデバッグ・ツールを使用することができます。

  • dbx シンボリック・デバッグ・プログラムを使うと、 C 言語、C++、FORTRAN、 COBOL、およびアセンブラー言語で書かれたプログラムをデバッグすることができます。
  • adb デバッグ・プログラムには、 実行可能バイナリー・ファイルの検査、デバッグおよび修復と、 非 ASCII データ・ファイルの検査を行うためのサブコマンドがあります。
  • KDB カーネル・デバッグ・プログラムおよび kdb コマンドは、 カーネルで実行中のコード内のエラーを判別するために使用することができます。 このデバッグ・プログラムを使って、 デバイス・ドライバーとカーネル・エクステンションをデバッグすることができます。
  • トレース機能は、選択されたシステム・イベントをモニターすることによって、 システムの問題を見きわめるのに役立ちます。

構文エラーまたはパラメーター命名の不整合をプログラム・ファイル内で検出した場合、 テキスト・エディターまたは文字列検索プログラムと文字列編集エディターを使用して、 ファイル内の文字列を検索して変更することができます。 文字列検索プログラムと文字列エディターには、 grepsed、および awk コマンドがあります。 1 つまたは複数のプログラム・ファイルで多くの変更を行うには、 これらのコマンドをシェル・プログラムに組み込んでからシェル・プログラムを実行すれば、 ファイル内のコードを検索して、それを変更することができます。

プログラムの作成と保守

プログラム変更の制御と、 多くのソース・モジュールからのプログラムの作成を補助するために、以下の機能が用意されています。 これらの機能は、多くのソース・モジュールを作成するソフトウェア開発環境で特に役立ちます。
  • make コマンドは、 ソース・モジュールからプログラムを作成します。 make コマンドは、 最後の作成以後に変更されたモジュールのみをコンパイルするので、 このコマンドを使用すれば、 多くのソース・モジュールを処理する必要がある場合のコンパイル時間を削減することができます。
  • ソース・コード制御システム (SCCS) を使用すれば、 プログラムの各バージョンの個別の完全なコピーを保管しなくても、 プログラムの個別のバージョンを保守することができます。 SCCS を使用すれば、ストレージ要件を削減することができ、 大きなプログラムの多くのバージョンを管理する必要があるプロジェクトの開発をトラッキングすることができます。

サブルーチン

システム・ライブラリーのサブルーチンは、複雑であるかまたは反復する多数のプログラミング状態を処理するので、 ユーザーは 1 つのプログラミング状態に専念することができます。

シェル・コマンド

多くのシェル・コマンドの機能を C 言語プログラムに組み込むことができます。 プログラムで使用するシェル・コマンドは、 そのプログラムを使用するすべてのシステムで使用可能なシェル・コマンドでなければなりません。

次に、プログラム内で forkexec サブルーチンを使用すれば、 そのプログラムとは別のプロセスとして、コマンドを実行することができます。 system サブルーチンはプログラム内でシェル・コマンドを実行し、 popen サブルーチンはシェル・フィルターを使用します。