とあるエンジニアの備忘録

SE・コンサルタントの備忘録

プログラムとCPU

◯CPU

 ・CPUはそれぞれ固有のマシン語しか理解できない

 ・CPUの種類によって理解できるマシン語も異なる

 

マシン語

 ・0,1の2進数(1bit)1からなる配列

 

 参考:機械語(マシン語)とアセンブリ言語

    機械語とは (キカイゴとは) 

 
◯ネイティブコード 

 ・1bit配列に変換されたプログラム

  (=マシン語に変換されたプログラム)

 

  ⇨CPUが異なれば、理解できるネイティブコードも異なる

 

 参考:IT基礎の基礎 - コンピュータの仕組み

 
◯プログラムソースが異なるマシンでどうやって動作するか

  コンパイラコンパイル時にCPUごとのネイティブコードに変換している。

  ※言語によってそれぞれコンパイラがある

 

コンパイラ

 ・コンパイラの仕事

  ネイティブコードへ変換したオブジェクトファイルの作成

  (オブジェクトファイルは動作しない)

 

◯リンカ

 ・リンカの仕事

  オブジェクトファイルを必要な外部ファイルと結合し、実行ファイルを作成する

  ビルドはリンカーとコンパイラの作業をまとめて行っている

 

  参考:リンケージエディタ

     リンカ〔 リンケージエディタ 〕

 

◯ライブラリファイル

 複数のオブジェクトファイルをまとめたもの。実行できないファイル 

 ・ライブラリファイルの中身

   ・外部にあるオブジェクトファイル参照情報

   ・オブジェクトファイル

    

参考:ライブラリ

   本当の機械語について

 

  ※間違いなどありましたらご指摘よろしくおねがいします 

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識