汎用プログラミング言語

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

汎用プログラミング言語 (はんようプログラミングげんご、英語: General-purpose programming language)とは、特定の用途に特化しない言語の総称である。ドメイン固有言語の対義語として用いられる。また、日本以外ではスクリプト言語の対義語としても用いられる。[要出典]

概要[編集]

汎用プログラミング言語の特徴としては、チューリング完全であること、汎用的な入出力が言語仕様や言語機能として組み込まれていること、言語仕様的に特定のアプリケーションに依存しないことが挙げられる。 これらの特徴により、ある汎用プログラミング言語で書いたプログラムは、難易度に差異はあれど他の汎用言語でも同等のプログラムを作ることができる。(なお、ここで言うアプリケーションには実行環境であるインタープリターは含めない。コンパイラー方式かインタープリタ―方式かは実装の差異であり、言語仕様とは関係ないためである。)

例えば汎用プログラミング言語として代表的なCや、かつてスクリプト言語であり現在は汎用プログラミング言語となっているPerlでは、ほとんどの場合同様のプログラムを記述することが出来る。

対照的に、ドメイン固有言語の代表格であるSQLでは、Cで記述したプログラムやPerlで記述したプログラムと同等のプログラムを作ることはできない。また、ドメイン固有言語のうちスクリプト言語に分類される言語では、Javascriptシェルスクリプトのようにチューリング完全であることが多いものの、汎用的な入出力が仕様化されておらず、操作対象のアプリケーション(ブラウザーやコマンド)に依存してしまう。このため、汎用プログラミング言語と同等のプログラムを作れるかどうかは環境に強く依存する。

汎用プログラミング言語以外の言語に対する優位性[編集]

汎用プログラミング言語について、C++の設計者であるBjarne Stroustrupは次のように述べている。

"A G-P language is at best the second choice for any one application"[1]

(汎用プログラミング言語はどのアプリケーションでも二番目に最適な選択肢である)

これは、問題に特化した言語が存在するなら、まずその言語が適切であり、次に、問題に特化した言語が存在しない場合や移植等といった事情がある場合においては汎用言語が適切であると語っている。

汎用プログラミング言語の一覧[編集]

脚註[編集]

外部リンク[編集]