とらりもんHOME  Index  Search  Changes  Login

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

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

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

「ソースコード」とは、ソフトウェアを人間(システム開発者)が書きおろした直後のものである。内容が人間にとってわかりやすいように、それぞれの命令は英語や数学用語に似た言葉で表現され、さらに、メモやコメントなども入る。

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

コンパイル言語

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

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

source.png

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

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

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

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

コンパイル言語の例:

C, C++, Java, FORTRAN, Pascal

スクリプト言語(インタープリタ言語)の例:

Python, PHP, Perl, Ruby, JavaScript, sh, awk, gnuplot

両方の機能をもつ言語の例:

matlab, IDL, VisualBasic

Last modified:2020/03/14 16:51:10
Keyword(s):
References:[IT入門] [2018_実用解析]