2009年11月28日土曜日

プログラミング言語の分類

 プログラミング言語には多種多様なものが存在します。一体どの言語にどのような特徴があるのか、判然としません。そこで様々なプログラミング言語の特徴を3つの観点から分類してみました。








図 プログラミング言語の分類









 1つ目の観点は言語のレベルです。プログラミング言語には「マシン語」に近い「低級言語」と「自然言語」に近い「高級言語」に分けられます。「マシン語」とは、コンピューターが理解している0,1のバイナリで記述された命令のことを言います。一方、自然言語とは我々が普段話す日本語や英語といった言語です。低級言語は私の知る限りアセンブリ言語のみです。アセンブリ言語は命令の種類は非常に少ないですが、マシン語にかなり近いので人間にはわかりづらく、面倒なことが多いです。一方、高級言語のほとんどは英単語を利用してコンピューターへの命令を記述します。(ただし、日本語によって命令が記述される「なでしこ」のような言語もあります。) しかしご安心を!英単語はfor,while,caseなどの簡単なものがほとんどなので、英語が苦手でも大丈夫でしょう。

低級言語や高級言語はそのままではコンピューターには理解できないので、マシン語に翻訳する必要があります。高級言語の場合には、マシン語への翻訳のタイミングが2種類ありjます。プログラムを作成した時に翻訳するものと、実行するときに翻訳するものです。前者を「コンパイラ型」、後者を「インタプリタ型」と呼びます。マシン語への翻訳はプログラムが大規模になるほど長い時間を要します。コンパイラ型ではプログラム作成に時間がかかるデメリットが、インタプリタ型では実行時に時間がかかるデメリットがあります。


2つ目の観点は文法です。プログラミングの文法には大きく分けて、「手続き型」と「非手続き型」の二つがあります。手続き型はプログラム実行順序通りに記述する言語です。つまり、コンピューターは基本的に自然言語の文章と同じように最初から順番通りに実行していきます。「そんなのあたりまえじゃん!」と思ったあなたは正しいです。手続き型の考え方は実行順序がはっきりしていて、人間の感覚と合致しており、初心者向けでしょう。実際、初期のプログラミング言語のC言語はこの手続き型に属しています。一方、非手続き型は順序通りには実行しません。これは感覚的に分かりづらく、メジャーなプログラミング言語も少ないので説明は省きます。


3つ目の観点はパラダイムです。プログラミングには様々な「考え方」があり、それらを総称して「プログラミングパラダイム」と言います。これは非常に多種多様にあるのですが、代表的なのが「オブジェクト指向」です。オブジェクト指向は、プログラムを複数のかたまり(オブジェクト)に分けて構成する技法で、オブジェクト指向をサポートしたプログラムをオブジェクト指向プログラミング言語といいます。・・・・・・なんのこっちゃって感じですね。これは、プログラムを実際に勉強してみればわかってくると思います。そう!ここまでいろいろ書きましたが、プログラミングはとにかく手を動かすことです。「やってみればわかる!」ということは結構ありますから。




参考文献


  1. プログラミング言語 - Wikipedia
  2. プログラミングパラダイム - Wikipedia
  3. プログラミング言語一覧 - Wikipedia 



0 件のコメント:

コメントを投稿