ライブラリについて

前置き

 

教授にまずネットワークを何故学びたいと思ったのかを聞かれた。

その時に自分は大学のプログラミング演習について行けなかったので、消去法で成績もそこそこ取れたネットワークにしたと答えた。

それなら、大学の演習の事は除いた時にプログラミングはやりたい?やりたくない?と聞かれたので、

将来どんな道に進んでもプログラミングは役にたつと思うのでやりたいですと答えた。

そこからまずライブラリを学習することになった。

まずスタティックライブラリとダイナミックライブラリを用いた簡単な計算プログラムを作ってその違いについて発表してと言う課題を提示された。

自分にはライブラリと言うものについての理解も怪しかったし、課題に出されたライブラリの違いなんてちんぷんかんぷんだった。

とりあえず、作れば分かってくるだろうと思いまとめ始めた。

 

ライブラリについて

まずライブラリについて大まかな説明を行う。

ライブラリとはプログラムが参照するコードやプログラムのことである。

例えば足し算や引き算などの多くの頻度で用いられるものは、関数などにして呼び出しを簡素化することが多いが、多くの場合それらをまとめて違うファイルにしたものがライブラリである。

 

次にライブラリについて具体的な説明を行う。

ただし、説明を理解するにはプログラムがどのようにして作成され、実行に至るのかを説明する必要がある。

プログラムにはブラウザ上で動く物と、パソコン上で動く物(Windowsの場合は多くはexeファイル)があり、エディタなどを用いて書かれたコードを、コンパイラC言語だとgcc)と呼ばれるプログラムがパソコン(CPU)が実行できるコード(機械語と呼ばれる0,1表記のもの)に変換し、それをパソコンが実行している。このとき変換する過程をコンパイルと呼ぶ。また、プログラムによってはライブラリを用いる事や、複数人で作ったものがあるから、複数のファイルで一つのプログラムを書くことがある。そのようなときはファイル毎にコンパイルが行われ、最後にリンカーが一つのプログラムにする。

以上が実行ファイルが作成されるまでの流れである。

 

ライブラリの違いは参照のされるタイミングの違いである。

スタティックライブラリはコンパイラにかかるまでにIncludeなどで参照され、ダイナミックライブラリはプログラムが実行された時に初めて参照される。

そのため、ダイナミックライブラリはライブラリが必要がないときには呼び出さなければ、メモリの使用をスタティックライブラリで作成したプログラムよりも少なくできる。

また、配布するときもライブラリを修正した時にはダイナミックライブラリのファイルのみを配布すれば良い。