コラム

Pythonファイルは「プログラム」?「スクリプト」?違いは?

詳しい説明は他のサイトにお任せして、この記事では以下の3点を中心にお伝えします。

  • スクリプト言語とプログラム言語の例
  • それぞれの特徴
  • インタプリタとコンパイラ

プログラミングの勉強を始めたばかりでも理解できるよう、分かりやすい言葉で説明します。

言語の区分

いわゆる「プログラミング言語」という言い方では、多くの「言語」が含まれる場合があります。
しかし、厳密には「プログラム言語」「スクリプト言語」「マークアップ言語」はそれぞれ違いがあります。

①プログラム言語

私の主観が入りますが、イメージとして「習得が難しい言語」はたいていプログラム言語です。
また、ある程度規模の大きいシステムはプログラム言語で記述されていることが多いと言えます。

プログラム言語の一例として、

  • C、C++
  • C#
  • Java

などが有名ですね。
これらの言語の特徴は、「コンパイルが必要」=「コンパイラ言語である」ということです。

※コンパイルについての説明は後述します。

②スクリプト言語

こちらも私の主観で説明すると、
プログラム言語よりも習得が簡単な言語というイメージではないでしょうか。

スクリプト言語の一例として、

  • Python
  • PHP
  • JavaScript
  • Ruby

などが有名ですね。
これらの言語の特徴は、「コンパイルが不要」=「インタプリタ言語である」ということです。

先ほど「プログラム言語は規模が大きいシステムで使われる」と言いましたが、
例えばPythonで開発された有名なアプリケーションには「YouTube」や「Instagram」があります。

スクリプト言語だから小さいアプリケーションしか作れないか?というと、
決してそういうことはありません。

③マークアップ言語

この記事では対象になっていませんが、一応「言語」ということでご紹介します。

マークアップ言語の一例として、

  • HTML
  • XML

などがあります。
<要素>=いわゆる「タグ」で囲んで記述するやつですね。

コンパイルとは?

上記のうち、①と②ではコンパイルを「する」とか「しない」という説明をしています。
では、コンパイルって何?という説明をします。

例えば、上記①のプログラミング言語である「Java」や「C#」で記述されたプログラムは、
そのままではプログラムを実行することができません。

コンピュータは0か1しか分からないからです。

人間の言葉で書かれたJavaのプログラムを「機械語」に変換(翻訳)することで、コンピュータが理解して実行することができるようになります。

このとき、「機械語」に変換(翻訳)することを「コンパイル」といいます。
そして、コンパイルしなければ実行できないプログラミング言語のことを「コンパイラ言語」といいます。
*コンパイルされたファイルは0と1のみで記述されており、この状態をバイナリファイルといいます。

つまり、JavaやC#などのプログラミング言語はコンパイラ言語であり、
プログラムを実行するためにはコンパイルをしなければならない
というわけです。

反対に、PythonやPHPなどのスクリプト言語はコンパイルが不要です。
記述されたコードは1行ずつ実行されるため、一般的に実行速度が遅いと言われます。
そのため、大規模なアプリケーションはコンパイラ言語で記述した方が良いのです。

なお、Pythonなどのコンパイルが不要なプログラミング言語のことを「インタプリタ言語」ともいいます。


まとめ

Pythonはプログラミング言語の一つですが、厳密にはスクリプト言語だということになります。

そして、Pythonで記述されたファイルはスクリプトファイルなので、コンパイルせず実行できるということです。

この記事では、難しい説明は省略していますので、詳しく知りたいという方は他のサイトを参考にしてください。

Pythonについて詳しく知りたいという方は、こちらの書籍もおススメです。

それでは、ステキなPythonライフを!

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 最近ではPythonを用いたアプリ開発、ウェブアプリケーションの開発と運営に没頭。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です