第2回エンペディア大賞」が2月いっぱい開催中です。2024年に作成された記事の中から、お気に入りの記事に投票しましょう!

プログラミング言語

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
記事をシェア:
X(旧Twitter)にシェアする
Threadsにシェアする
Facebookにシェアする
はてなブックマークにシェアする
LINEにシェアする
ナビゲーションに移動 検索に移動

プログラミング言語とは、コンピューターに指示を与えるための正確に定義された記号と規則からなるコンピュータ言語である。[1]

概要[編集]

具体的なプログラミング言語については、カテゴリ:プログラミング言語を参照。

低水準言語と高水準言語[編集]

  • プログラミング言語は低水準言語及び高水準言語に分類することができる。
  • 低水準言語は、アセンブリ言語のことであり、高水準言語の例としては、PerlVisual BasicLISPPHPJavaPythonC言語C++などが挙げられる。
  • プロセッサは機械語プログラムを直接読み取り実行する。しかし、人間にとってビット列は直観的に理解しづらく、機械語コーディングは困難であるため、ビット列に対応する文字列命令(ニーモニック)を利用する低水準言語として、アセンブリ言語が使われる。
  • 高水準言語は、アセンブリ言語で頻出するパターンを1つの機能として言語仕様に組み込んで抽象度を上げていった言語である。現在では、一般的には、プログラミング言語として、高水準言語が使われる。
  • 高水準言語で書かれたプログラムはコンパイラあるいはインタプリタなどにより、機械語に変換される。
  • 低水準言語で書かれたプログラムはアセンブルを行うアセンブラにより、機械語に変換される。具体的には、アセンブラが、ニーモニックをオペコードに変換し、シンボル名をメモリ位置や他の実体に変換する。アセンブリ言語から機械語への変換をアセンブルという。
    • アセンブルは比較的単純な規則からなるため、人の手でも実行でき、これは「ハンドアセンブル」と呼ばれる。

自然言語とプログラミング言語[編集]

  • 人間が読み書きしやすい言語にするには、ベースとなる自然言語が必要となる。プログラミング言語の大半は、英語をベースとしている。高水準言語の場合は、日本語をベースにしているものもいくつかある。

高水準言語の数[編集]

高水準言語には非公開もしくは無名のため、存在をカウントすることができないものがある。こういったものを除いてある程度有名なものを数えても、多数の言語がある。

プログラミング黎明期を除き、高水準言語には特定の条件下でなければ決定版と呼べるものはない。
高水準言語が多数生まれ続ける理由はいくつかある。以下にいくつかの候補を示す。複数の理由には重複する部分もある。

  • コンピューターの技術革新やプログラミング言語自体の研究が進んだことにより[注 1]、より効率の良い高水準言語の開発が可能になった
  • 既存のプログラミング言語に気に入ったもの・使いやすいものがなく、または単に作りたくて、自ら作り出す開発者が存在する
  • 既存のプログラミング言語が使われ続けていく中で何かしらの欠点が顕在化し、それの解消を目的として
  • 新しいパラダイムやアーキテクチャーにおいて、既存のプログラミング言語では表現できない、もしくは著しく効率が悪い

分類[編集]

高水準言語は、パラダイム(プログラミングパラダイム)、実行方式、用途などで分類され、以下のようになる。

パラダイム別[編集]

オブジェクト指向言語関数型言語手続き型言語、など。

実行方式別[編集]

実行方式には、コンパイル方式、インタープリター方式がある。

プログラミング言語を記述したテキストファイルを、コンパイルせずに実行時にそのまま言語処理系に渡して実行するタイプのものは、スクリプト言語PythonRubyJavaScriptなど)と呼ばれる。

用途別[編集]

用途には、数値解析、テキストデータ処理、Webアプリケーション開発、携帯端末アプリ開発、ゲーム開発、組み込みシステム開発、人工知能開発、などがある。OS開発のように言語が限られる分野もある。

何かしらの特定の技術に関連づけされた言語のグループがある。

Microsoftの.NET言語(VB.NET、C#、F#など)や、Java仮想マシンのJVM言語(KotlinScalaClojureなど)が該当する。

その他[編集]

高水準言語には、Brainf*ckのように意図的に難解にしているものもある。このようなプログラミング言語は、「難解プログラミング言語」と呼ばれる。

プログラミング言語とは呼ばないもの[編集]

プログラミング言語のようだがプログラミング言語とは呼ばないものがある。

  • HTMLマークアップ言語と呼ぶ。HTMLはコンピューターに指示しているように見えるかもしれないが、実際はWebブラウザーがコンピュータープログラムであって、HTMLはその入力データに過ぎない。
  • SQLは、厳密いうとプログラミング言語ではなく、Codd のデータベース理論に基づいて作動している RDBMS に対する問い合わせ言語である[注 2]

プログラミング言語と呼ぶもの[編集]

プログラミング言語のようではないがプログラミング言語と呼ぶものがある。

脚注[編集]

注釈[編集]

  1. 計算機科学で理論的には作られていたがコンピューターの能力不足により十分な実現が困難、実用化しなかった、など。コンピューターの能力が上がったことで、高度な仮想マシンや高度な推論のように抽象的な処理が実現できるようになった。
  2. とはいえ、Oracle の 9i 以降では「CONNECT BY」という再帰呼出しなどが追加され、あれはあれでプログラミング言語として認めてあげたい。乗用車の製造ラインを立てるときに部品管理のために部品ツリーの比較をする必要があり、問合せ側との間でコミット関係で待ち合わせに手間取るため、「なんとかならないか?」というので三菱総研が「SQL の再帰呼出しで、DB サーバの内部で処理を閉じられないか?」というので採用した事例がある。

出典[編集]

関連項目[編集]