(79)コンピュータの構成とプログラムが動くしくみ2013年10月8日プログラムが、OSによってRAMに呼び出されて動く仕組みや、高級言語の動くしくみを説明する。コンピュータの構成コンピュータの基本的構成部品は、CPU,主記憶,補助記憶,周辺装置。CPUは、メモリから機械語の命令を読み取り(Fetch)、解析(Decode)、メモリ読み出し(Read)、実行(Execute)、メモリ書き込み(Write)を繰り返す。ROMだけでは自由にプログラムを入れ替えて動かすことができない。OSを起動させるためのプログラム(ブートローダ)を起動する。ユーザプログラムの起動を待つ。プログラムを主記憶に読み出し、実行を行う。プログラムが動くしくみプログラムといっても、コンパイラ方式、インタプリタ方式などがある。コンパイラは高級言語で書かれたプログラムを、直接実行可能な機械語に変換しておく。このため、実行時の速度は速い。プログラムの実行するには、コンパイル・リンクなどの手間が必要となる。元々のプログラムがどういった記述なのか解析は困難。インタプリタ方式は、高級言語のソースを必要に応じて命令の意味を解析し、その都度実行を行う。このため、プログラムの試作段階で動作を確認しながら開発を行う際には便利である。プログラムを実行する際に、高級言語のソースコードが必要となる。最近では、バイトコードインタプリタ方式と呼ばれる方式もよく利用される。高級言語の命令を、実行しやすい機械語に近いシンプルな命令にコンパイルし、実行を行う。高級言語のソースを、コンパイルし中間コードを生成。中間コードと、ライブラリ(一般的な関数の処理の中間コードをまとめたもの)を組み合わせて、機械語を生成(リンク処理)といった手順をとる。最近のOSは、マルチユーザ・マルチタスクであるため、ライブラリの機械語は同時に動く他のプログラムでも同じように使われている場合が多い。メモリの無駄や、ライブラリの更新の手間が増える。このため、最近のOSでは、動的リンクライブラリという方式を使い、ライブラリを共有して用いる。miniOrange。