プログラム言語のコンパイル操作

計算機はFortran, Pascal, Cなどのプログラム言語で書かれたプログラム をそのまま実行できるわけではない。プログラム言語を機械語に翻訳する ことが必要である。この作業をコンパイル(compile)、コンパイルをする プログラムをコンパイラ(compiler)という。 なお、コンパイル結果の機械語プログラムに対して、 コンパイル前の、Fortran, C, Pascalなどの言語で書かれたプログラムを、 「ソースプログラム」(source program)という。

Unix上のコンパイラはふつう、ファイル名のピリオドからあとの部分を見て プログラム言語を判断する。それぞれの言語に合わせてファイル名をつけて おかなければならない。ピリオドから前の部分はなんでもよい。 仮に名前をhelloとしておこう。

Fortran
f77 hello.f
C
cc hello.c
Pascal
pc hello.p

【[2003年現在の慶応SFCローカルな注] CNSでは、pcコマンドは見当たらないが、 教材本文ではPascalに関する記述は残しておく。 また、f77コマンドはFreeBSDにはあるが(実体はGNUのg77)、 Sunにはなかったので、とりあえず f2cを使ったf77コマンドを入れた。】

いずれの言語でも、特に指定しないと、「a.out」という 実行可能ファイルができる。 これを実行するには、Unixのコマンドとしてa.outと打てばよい。 [実はこれは条件つきである。 ./a.outと打つ必要があるかもしれない。 別記事参照。]

もし 実行プログラムの名前をhelloとしたかったら、 コンパイルしたあとmv a.out helloを実行してもよいが、 f77コマンド (cc, pcコマンドも同様)の oオプションを使って

     f77 -o hello hello.f
とすれば初めからhelloという名前で作られる。 (この授業の範囲では、 機械語の実行可能ファイルを保存する必要はないので、 a.outのままにしておくことを勧める。 ただし、自作のプログラムどうしの パイプライン処理をする場合には 名前を変えることが必要になる。)

プログラムが異常終了したとき、 「core」というファイルができることがある。 主記憶の内容のコピーであり、dbx,gdbなどのデバッガ というソフトウェアを使ってプログラムの中でやっていることを 調べるときは意味があるが、そうでなければ使わないので消すこと。


1996-06-21; 2000-04-18; 2003-05-08; 微修正 2015-06-14
増田 耕一 (MASUDA Kooiti)

[目次へ}