プログラミング言語は、言語というぐらいなので、人間が普段使っている日本語や英語の用に、たくさんの種類が存在します。 それぞれの特性や用途に合わせてシステムごとに相性の良いプログラミング言語を利用することが可能です。

プログラミング言語とは

3年以上前に更新されました。情報が古い可能性があります。
更新日 : 2018年12月06日

プログラミング言語は、言語というぐらいなので、人間が普段使っている日本語や英語の用に、たくさんの種類が存在します。

それぞれの特性や用途に合わせてシステムごとに相性の良いプログラミング言語を利用することが可能です。

プログラミング言語の存在意義

プログラミングは前回の記事で、「コンピュータへ命令を伝えるための手順を書いていくこと」とご説明しました。さらに、コンピュータへの命令はそんなに種類は多くはありません。

なのにプログラミング言語はなぜいろいろな種類に分かれているのでしょうか。

コンピュータが理解できるデータ

コンピュータは日本語や英語を理解することはできません。今表示されている日本語も、コンピュータにとってはただのデータです。

コンピュータ自身が理解して日本語を表示したり、認識するわけではありません。

コンピュータが理解できるのは、0と1の数字のみです。詳しくは2進法を参照ください。
例えば、このサイトでのひらがななの「あ」はコンピュータのデータ上は
「111000111000000110000010」となります。

人間が理解しようと思っても、理解できません。(笑)

コンピュータが理解できるプログラムの形式1を「機械語」と言ったりします。これは言葉だけ知っておけば問題ありません。

人間が理解できるデータ

一方人間が理解するためには、普段使っている日本語や、英語の文字が理想的です。

プログラミング言語は基本的には英語に基づいたアルファベットの形式で書かれます。

ものすごく大雑把に言うと、「英単語と、計算式が合体した形式」です。

こうすることによって、人間にも理解しやすく、一定のルールに基づいていればコンピュータが理解できる機械語にも翻訳することができる用になります。

プログラミング言語は、コンピュータと人間を結ぶ仲介役

プログラム自体も、人によって書き方が異なると変換できないため、書き方のルールを取り決めた物をプログラミング言語と言います。

そして、プログラムもやりたいことによって、特定の機能をとても書きやすくしたプログラミング言語や、コンピュータの処理の速さに特化したプログラミング言語など、様々な特徴や偏りをもたせた結果、たくさんのプログラミング言語が生まれました。

プログラミング言語の大まかな分類

たくさんのプログラミング言語がありますが、大まかな分類が存在します。

先程の機械語と言うのは近年のプログラマはほとんど使いません。
機械語の他にもコンピュータの理解できる形式に近いアセンブリ言語なども存在しますが、あまり最近では使用されなくなってきていると言われています。

機械語やアセンブリはほぼコンピュータの形式に近く、人間には理解しづらい形式のため、このような言語を「低級言語」といいます。

一方人間が理解できる形式(アルファベットや四則演算の書き方など)で書き、後から機械語に翻訳してコンピュータに処理させる言語を「高級言語」と言います。

筆者が基本的にブログにしていくのは高級言語の方です。
ここまではあまり覚えたりする必要も無い知識ですが、一応このようなものがあるよ〜という程度に記しておきます。

高級言語での分類

高級言語に、実際に最近のプログラマが使用するプログラミング言語があります。
筆者が説明していくプログラミング言語もすべて高級言語の分類のプログラミング言語です。

高級言語にも大まかに2種類の分類があります。

実行形式によるプログラミング言語の分類

高級言語では、実際に人間に理解しやすい形式2での記述でプログラムを書いていきますが、最終的に機械語に翻訳・変換をしてコンピュータに処理してもらうのは変わりません。

実行形式と、難しく書きましたが、ではいつ人間の形式で書いたプログラムを翻訳して実行するかによって分けることができます。

コンパイラ型言語

人間が理解できる形式でプログラムを書いた後、コンパイラという翻訳・変換専用のソフトウエアを利用して、機械語用のファイルなどを作成してから、コンピュータに実行してもらう方式をコンパイラ型言語といいます。

コンパイラ型言語では、人間が書いたコードを直接実行するわけではないので、プログラムを変更したら必ずコンパイルという翻訳作業にかけないといけません。

その代わり、機械語に翻訳してあるファイルは、コンピュータが読み込むだけなので、コンピュータは比較的速く処理することができます。

インタプリタ型言語

人間が理解できる形式でプログラムを書いた後、すぐ実行できる形式の言語をインタプリタ型言語と言います。

これは、人間の形式のプログラムを1行読み取り翻訳→実行→次の1行を読み取り翻訳→実行という流れを繰り返し行うことでコンピュータに処理させます。

そのため、プログラムを変更すると、即座に変更が反映された状態で実行できます。
便利な分、いちいち翻訳して実行という処理があるので、コンパイル型言語よりもやや低速となります。

インタプリタ型言語は、人間の理解できる形式を直接コンピュータに実行させることができるため、スクリプト型言語とも言われたりします。
スクリプトと言うのは日本語では「手書きの」と言った意味になります。

コンピュータに直接手書きのプログラムを実行させることができる言語全般をスクリプト型言語ということができます。

後に記事にしていきますが、PHPJavaScript(EcmaScript)というプログラミング言語はスクリプト型のプログラミング言語です。

まとめ

今回はプログラミング言語について分類やそれぞれの特徴をご説明しました。

  • 低級言語
    コンピュータが理解できる形式や、人間が理解しづらい形式のプログラミング言語
  • 高級言語
    人間が理解できる形式で、機械語に翻訳して実行できるプログラミング言語
    • コンパイラ型言語
      プログラムを翻訳処理に流して、新しくできた機械語の物をコンピュータに処理させる言語
    • インタプリタ型言語
      プログラムを直接実行することができる言語。実際は1行ずつ機械語に翻訳して実行を繰り返す。
      スクリプト型言語はこれに分類される。

大まかにこんな感じの分類があるんだな〜程度でいいです。

  1. もちろん、人間が理解できるように変換表などが存在はしますが、非効率です。 ↩︎
  2. 基本的には英語に基づいた形式が多いです。 ↩︎