Next:
変数の宣言, 整数の演算
Up:
計算機言語 I 第2回 はじめての
Previous:
Hello, world. プログラムの説明
Contents
cc の動作と用語説明等
コマンド cc は一つのプログラムではなく, 少なくとも次のプログラム (プロセス)を作り出します. 下の図の四角く囲まれた部分に書かれているのは, その時に使うファイル名です.
1#1
cpp
C preprosessor: C compiler (ccom) が処理をする前に, コメント文の削除や, マクロの展開などの文字列処理の部分を受け持って, 事前に処理をするものだと思ってください.
ccom
C compiler: C 言語の文法で記述された処理内容を, assembly 言語に変換するプログラム.
as
Assembler: assembly 言語で書かれた内容を, 機械語(2進法で記述されもの)に変換するプログラム.
ld
Link editor: リンカともいう. 上の 2-1.c ではコンパイルした結果は,
Hello, world.\n
という 文字の並びを関数 printf に受け渡すという命令だけです. printf の実体は, ライブラリとしてコンピュータの次にファイルに入っています.
/usr/lib/libc.a (/usr/lib/libc.so.1)
ldは, 2-1.c のコンパイルしてできた結果と 上のファイルにある printf を結び付けて(リンクするという), さらにシステムが, 実行時に要求する情報をつけて 実行可能ファイルを作り上げます.
Library
プログラムを組むと分かりますが, 画面の入出力などは どのプログラムでも同じ様な事をします. これをいちいちプログラム するのは, 無駄です. そこで, よく使う処理はあらかじめ機械語 のものを作成し, まとめたのが必ずあります. これがライブラリ(library)です. ライブラリは, compiler(実は, リンカ)に指示することによって, 自分のプログラムにくっつけることが出来ます. また, C言語では標準ライブラリというのが ANSI により 定義されており, 多くの処理はこれを利用します.
ファイル名
C 言語のプログラミングにおいてファイル名は, 次の規則にしたがって, 名前をつけます.
*.c C 言語のプログラムを記述したファイル.
*.h ヘッダ(header)ファイル. 定数とか関数の定義を記述する.
*.s assembly 言語のプログラムを記述したファイル.
*.o オブジェクト(object)ファイル. 2 進法で記述した機械語が入っている.
a.out 特別なオプションを指定せずにコンパイルしたときに出来る 実行可能ファイル.
上のファイルのうちいくつかは, 2-1.c をコンパイルするときには 現われませんでしたが, それは単に目に見えないだけで, コンピュータの内部では ちゃんと作られています.
2003-04-24