とぎぷろべい

包丁研ぎとプログラミングと米国株投資についてのなんやかんや

ソースコードとスクリプトとプログラムの違いについて

f:id:feci:20210820193453j:plain

プログラミング関係のお話

 

プログラミング用語についての解説です。

 

ソースコードについて

ソースコードはプログラムを動かすための文字列のことです。

ソースコードはソースまたはコードと略されることもあります。

 

ソースコードはコードエディタで作成します。

例えばPHPであれば、以下のような文字列すべてがソースコードに該当します。

<?php

$aaa = rand(010);

if ($aaa % 2 === 0) {
  echo "今回は偶数です({$aaa})";
else {
  echo "今回は奇数です({$aaa})";
}

 

 

スクリプトについて

スクリプトは、ソースコードコンパイル機械語への翻訳)せずにそのまま実行できるファイルのことです。

実際にはスクリプトも裏でコンパイルをしているらしいのですが、とりあえず見かけ上はコンパイルせずに実行しているように見えるので、分類上はプログラムとは違うものになってしまうらしいです。

 

なのでPHPPythonなどはコンパイルなしで実行できるので、プログラムではなくスクリプトということになります。

 

一応、PHPPythonプログラミング言語の一種なんですけどね。

プログラミング言語ではあるけれど、作成したそれはプログラムではないようです。

ややこしいですね。

 

 

●プログラムについて

プログラムは、ソースコードコンパイルして機械語に翻訳したことによって作られるファイルのことです。

 

C言語などはソースコードを実行する前に、そのコードをいったん機械語に翻訳しないといけないそうです。

そして、その翻訳作業のことをコンパイルと言います。

 

このコンパイルが終了したあとに、実行用の翻訳語ファイルが自動で作成されるそうです。

このファイルのことをプログラムと言います。

 

 

ちなみに、ソースコード機械語に翻訳する前の状態のことを高級言語といったりもします。

高級言語コンパイルまたはインタープリタすることで、コンピューターが実行可能な機械語のプログラムができるわけです。

 

ちなみに厳密には、高級言語(高水準言語)の対義語は機械語ではなく低級言語(低水準言語)です。

機械語は低級言語の一種というだけであり、低級言語=機械語であるというわけではありません。

 

 

またコンパイルと似た言葉にコンパイラというのがあります。

コンパイル高級言語機械語に翻訳する作業のことを言いますが、コンパイラはそのコンパイルを実行するプログラムのことです。

 

つまり、コンパイラコンパイルをしている、という感じですね。

 

 

また高級言語から機械語への翻訳には、コンパイル方式とインタープリタ方式の2パターンがあります。

 

コンパイル方式は、ソースコードを一度に丸ごと翻訳してプログラムを作ってから実行する方式です。

インタープリタ方式はその翻訳作業を丸ごとおこなわずに、1行ずつ翻訳しては実行するというプロセスを繰り返す方式らしいです。

 

処理方式の関係上、以前はどうしてもインタープリタ方式での処理はコンパイル方式に比べて処理速度が遅いという欠点があったようです。

しかし近年では、インタープリタ方式の処理速度はコンパイル方式に劣らないほど速くなってきているらしいです。

 

 

以上です。