コンピュータ言語

コンピュータ言語（コンピュータげんご）とは、コンピュータにおいて用いられる人工言語の総称である。

プログラムを記述するためのプログラミング言語の一群が最も有名であり、そのためコンピュータ言語とプログラミング言語は同じ意味で使われることもある。

しかしコンピュータ言語には、プログラミング言語の他にもハードウェア記述言語やデータ記述言語などがあり、これらはプログラミング言語とは全く異なる特徴を持つ言語である。

 コンピュータ言語の特性 
コンピュータ言語の大きな分類として、『人間が読める言語』と『人間が読めない言語』という分類がある。

人間が読める言語は直接人間が使うことを想定して設計しており、人間が読めない言語は「人間による可読性」を犠牲にすることで、よりコンパクトでコンピュータが処理しやすい形式になるよう設計している（部分的には人間が読める場合もある。）。

なおコンピュータ言語に対しては、機械による可読性（機械可読）という観点もある。

 コンピュータ言語の種類 

 プログラミング言語 

プログラミング言語は、コンピュータ・プログラムを記述するためのコンピュータ言語である。プログラミング言語には、最近使われている頻度が高いものでは、Python、Java、C言語、C++などがある。また、最近はあまり使われていないが、BASIC、COBOL、FORTRANやアセンブリ言語などのプログラミング言語もある。コンピュータプログラムを記述することをプログラミングといい、コンピュータプログラムを記述する人間のことをプログラマという。

スクリプト言語は、『容易に使えるプログラミング言語』を指す大雑把な分類である。どのような言語をスクリプト言語と呼ぶかは感覚的なものであり、正確に定義できるものではないが、一般にスクリプト言語には下記のような特徴を備えているものが多い。

 動的プログラミング言語寄りである
 処理系の実装がインタプリタ寄りである。
 文字列の扱いが容易である。
 コードの作成や修正が容易である。（軽量プログラミング言語も参照。）
 特定領域の問題に特化している。（ドメイン固有言語も参照。）
 アプリケーションソフトウェアに内蔵されている。（マクロ言語も参照。）
 複数のアプリケーションソフトウェアの動作を協調させることができる。（グルー言語も参照。）

スクリプト言語には ActionScript、AppleScript、AWK、bash、Emacs Lisp、Google Apps Script、Groovy、JavaScript、Lua、Perl、PHP、Python、REXX、Ruby、PowerShell、SKILL、Tcl、TypeScript、VBScript などがある。

多くのプログラミング言語はテキストのソースコードでプログラムが記述されるが、ビジュアルプログラミング言語はプログラム要素を視覚的に表現し操作することでプログラムを構築する。コンピュータが実際に実行する命令は機械語で現されている。これは一般に人間が読めない（読まない）バイナリ形式のコンピュータ言語であり、CPUの命令セットに対応している。高水準言語のソースコードはコンパイラによって機械語に変換される。

プログラミング言語によってはバイトコードのようにコンピュータ・アーキテクチャと独立した移植性の高い中間表現を使う場合がある。そのようなシステムでは、バイトコードから機械語へ変換するコンパイラもあるか、バイトコードを仮想マシンないしバイトコードインタプリタで実行する。よく知られている例としてJavaがある。

 情報を表現するコンピュータ言語 
 問い合わせ言語（SQL、XQueryなど）
 データ記述言語
 マークアップ言語（HTMLなど）
 データベース言語 - データ操作言語、データ定義言語、データ制御言語
 変換言語
 モデル変換言語（XSLTなど）
 テンプレート処理言語
 正規表現
 :Category:データシリアライゼーションフォーマット

 ソフトウェアの動作を設定するコンピュータ言語 
設定ファイル形式（INIファイルなど）

 システム設計のためのコンピュータ言語 
 モデリング言語
 仕様記述言語
 ハードウェア記述言語

 人間が記述しないコンピュータ言語 
 ハードウェア制御言語 - プリンターや表示装置の制御（例えばページ記述言語）など。

 参考文献 


 関連項目 

 形式言語
 人工言語
 コンピュータ
 ソフトウェア
 ハードウェア
 プログラミング言語
 低水準言語
 機械語
 アセンブリ言語
 高水準言語
 スクリプト言語
 マクロ言語
 ビジュアルプログラミング言語
 中間表現#中間言語
 プログラミング言語の一覧

 外部リンク 
 The Encyclopedia of Programming Languages

*