とらりもんHOME  Index  Search  Changes  Login

とらりもん - ソースコードとバイナリコード Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!ソースコードとバイナリコード

ソフトウェア(プログラム)は、計算機システムに与える命令書や手順書のようなものであり、これをもとに、計算機システムはいろんな作業を整然かつ正確にこなしていく。このソフトウェアには、おおまかにいって、2通りの表現形式がある。それが「ソースコード」と「バイナリコード」である。

[[「ソースコード」|http://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89]]とは、ソフトウェアを人間(システム開発者)が書きおろした直後のものである。内容が人間にとってわかりやすいように、それぞれの命令は英語や数学用語に似た言葉で表現され、さらに、メモやコメントなども入る。

それに対して、「バイナリコード」とは、機械(計算機)が直接読み取って解釈/実行可能なような表現形式であり、それぞれの命令は番号(数字)で表されるため、人間にとっては数字の羅列にすぎないのでわかりにくい。

!コンパイル言語

多くの計算機言語(人間がプログラムを記述・開発・実行するための言語)では、まず人間がソースコードを書き、次に特別なソフト(コンパイラという)によって計算機がソースコードをバイナリコードに翻訳し(それをコンパイルするという)、最後にバイナリコードをもとに計算機がそのソフトを実行する、という手順を踏む。このような言語のことを、「コンパイル言語」という(コンパイル言語でないプログラミング言語として、「インタプリタ言語」「スクリプト言語」がある。これは後述する)。コンパイル言語には例えば、C, C++, FORTRAN, Pascal, Javaなどがある。

ソースコードの例 (C言語; 太陽の位置の時間変化を計算するプログラムの一部):

http://ryuiki.envr.tsukuba.ac.jp/~nishida/lecture/IT/source.png{{attach_view(source.png)}}

!スクリプト言語・インタープリタ言語

一方、ソースコードを(コンパイルせずに)そのまま実行してしまうような言語もある。そういう言語を「スクリプト言語」とか「インタープリタ言語」と呼ぶ。スクリプト言語で作成されたプログラムにはバイナリコードは存在しないと考えてよい(スクリプト言語をコンパイルする、ということも無いではないが)。

スクリプト言語はコンパイラ言語にくらべて処理が遅く、自由度も低いが、便利な機能がコマンドとしてあらかじめ作り込まれているので、プログラムの作成が楽である。大規模・高速処理はコンパイラ言語で行い、インターフェースはスクリプトで作り込む、というような分担が一般的である。たとえばシミュレーションや画像解析を行うとき、C言語(コンパイラ言語)で実際的な処理を行い、ユーザーからのパラメータ入力や、結果の加工・表示などはシェルスクリプト(スクリプト言語)で行ったりする。

なお、スクリプト言語とコンパイラ言語の両面をもつ言語もある。すなわち、スクリプトとしての実行も可能だし、コンパイルして実行することも可能なような言語である。

!!!コンパイル言語の例:
C, C++, Java, FORTRAN, Pascal

!!!スクリプト言語(インタープリタ言語)の例:
Python, PHP, Perl, Ruby, JavaScript, sh, awk, gnuplot

!!!!両方の機能をもつ言語の例:
matlab, IDL, VisualBasic