PC(1) — UNIX Programmer’s Manual
名称
pc − Pascal コンパイラ
形式
pc [ option ] [ −i name ... ] name ...
解説
pc は Pascal のコンパイラです。 引数として .p で終るファイル名を指定すると、 ファイルをコンパイルし、 a.out (デフォルト)と呼ばれる実行可能ファイルを 生成します。
プログラムは、 複数の .p ファイルに分割することができます。 pc は、 指定された複数の .p ファイルをコンパイルして、 オブジェクトファイル (拡張子 .p の代わりに .o を持つ) を生成します。 そしてオブジェクトファイルは、 1つの実行可能なファイル a.out にロードすることができます。 実行可能な a.out ファイルを 生成するには、 1つのオブジェクトファイルだけに program ステートメントが入っていなければなりません。 その他のファイルは、 プログラム中で論理的にネストになる宣言だけで構成されていなければなりません。 分割コンパイルされるファイル間のオブジェクトの参照は、 名前が必ず .h で終わる include ヘッダファイルで宣言されている場合だけ許されます。 ヘッダファイルは、 最も外のレベルでだけインクルードされ、 グローバルに有効なオブジェクトのみを 宣言することができます。 function と procedure の宣言を 許可するために、 external ディレクティブが追加されています。 この使用法は forward ディレクティブと似ていますが、 現われるのは .h ファイル内のみに限られています。 function と procedure のボディーは、 .h ファイルには現われてはいけません。 コンパイラの結合段階で、 その宣言が Pascal のタイプチェック規約にしたがって 一貫して使用されているかがチェックされます。
他の言語プロセッサで作成されたオブジェクトファイルも、 pc で作成されたオブジェクトファイルと共にロードすることができます。 これらが定義している functions と procedures は、 これらのルーチンを呼び出すすべての .p ファイルにインクルードされる .h ファイル中で宣言されていなければなりません。 呼び出し規則は Cと同じであり、 var パラメータはアドレスで渡されます。
詳細に関しては、 Berkeley Pascal User’s Manual を 参照してください。
以下のオプションは、 cc(1) および f77 (1) と同じ意味を 持っています。 ロード時のオプションに関しては、 ld(1) を参照してください。
−c ロードを抑止し、 ソースファイル(複数も)から‘.o’ファイル(複数も)を 生成します。
−g dbx(1) 用のシンボルテーブル情報をコンパイラに生成させます。
−w 警告メッセージの出力を抑止します。
−p プロファイル用のオブジェクトファイルを 用意します (prof(1) 参照)。
−O オブジェクトコードの最適化を行います。
−S 指定されたプログラムをコンパイルし、 アセンブラ言語の出力を 対応するサフィックス .s の付いたファイルへ格納します(‘.o’は生成されない)。
−o outut
最終出力ファイルの名前を、 a.out ではなく output にします。
以下のオプションは、 pc 独自のものです。
−C pi のように、 実行時にチェックを行い、 assert コールを ベリファイし、 すべての変数をゼロに初期化するように、 コードをコンパイルします。
−b output ファイルをバッファリングします。
−i 指定された手続き、 関数、 include ファイルのリスティングを 生成します。
−l コンパイル時にプログラムリスティングを 生成します。
−s 標準 Pascal のみを受け入れます。 標準でない構文は、 警告診断メッセージが出力されます。
−t directory
コンパイル時の一時ファイルのために、 指定されたディレクトリ(directory)を 使用します。
−z ステートメントカウンタを生成することで pxp によるプロファイリングが実行できるようにし、 結果のオブジェクトを実行した時に、 プロファイルデータファイル pmon.out を作成するようにアレンジします。
その他の引数は、 pc と互換性のあるルーチンのライブラリなど、 ローダのためのオプション引数として解釈されます。 プログラム中のコメントによってフラグを制御することができますが、 これに関しては、 Berkeley Pascal User’s Manual を 参照してください。
関連ファイル
file.pPascalソースファイル
/usr/lib/pc0コンパイラ
/lib/f1コードジェネレータ
/usr/lib/pc2実行ルーチンインテグレータ(インライン展開プログラム)
/lib/c2ピープホールオプティマイザ
/usr/lib/pc3分割コンパイル一貫性チェッカ
/usr/lib/pc2.∗stringsエラーメッセージのテキスト
/usr/lib/how_pc基本的使用法の説明
/usr/lib/libpc.a組み込み関数とI/Oライブラリ
/usr/lib/libm.a数学ライブラリ
/lib/libc.a標準ライブラリ (intro(3) 参照)
関連事項
Berkeley Pascal User’s Manual
pi(1), pxp(1), pxref(1), sdb(1)
診断
基本的な説明には、
pc
を実行してください。
エラーメッセージのフォーマットに関しては、 pi(1) を 参照してください。 内部エラーには、 メッセージに SNARK という単語がつきます。
著者
Charles B. Haley, William N. Joy, and Ken Thompson
ポータブル Cコンパイラの第 2パスのリターゲットは、 Peter Kessley
実行時ライブラリとインラインオプティマイザは、 M. Kirk McKusick
分割コンパイルの一貫性チェッカは、 Louise Madrid
バグ
キーワード packed は認識されますが、 効果はありません。
外部宣言は‘.h’ファイルのみになければならないこと、 インクルートされる‘.h’ファイルは 一番外側になければならないという結合時のチェックは、 ここで述べてあるほどきびしく行われていません。 今後これらのチェックが行われるようになるので、 ユーザは注意してください。
−z フラグは、 分割コンパイルするファイルには働きません。
−s オプションは、 コンパイラによって取られてしまうので、 ローダへ strip オプションを 渡すことはできません。 したがって、 プログラムを ストリップするには、 コンパイルの後で strip(1) を通す必要があります。
NEWS-OSRelease 3.3