コンピュータ言語

コンピュータ言語（コンピュータげんご）とは、コンピュータにおいて用いられる言語の総称である。一般に人工言語で、もっぱら形式言語である（親しみやすさなどの目的で、自然言語風にデザインされることもある）。

プログラムを記述するためのプログラミング言語の一群が最も有名であり、そのため「コンピュータ言語」と「プログラミング言語」は同じ意味で使われることもある。しかし、コンピュータ言語としては他にもハードウェア記述言語や、マークアップ言語のようなデータ記述言語などがあり、それらは「プログラミング言語」ではない。

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

コンピュータ言語の種類

プログラミング言語 

プログラミング言語は、コンピュータ・プログラムを記述するための言語である。プログラミング言語には、最近使われている頻度が高いものでは、Python、Java、C言語、C++などがある。また最近は使われる頻度がそれなりに減ったが、BASIC、COBOL、FORTRANやアセンブリ言語などもある。プログラミング言語の分類方法は多数ある（詳細はプログラミング言語の記事で解説）。

プログラムを書くことをプログラミングといい、プログラムを書く人をプログラマという。

スクリプト言語は容易に使えるプログラミング言語を指す大雑把な分類である。スクリプト言語には下記ような特徴（の一部または全て）を備えているものが多い。どのような言語をスクリプト言語と呼ぶかは感覚的なものであり、正確に定義できるものではない。
処理系の実装がインタプリタ寄りのことが多い
文字列の扱いが容易である。
軽量言語 — コードの作成や修正が容易
ドメイン特化言語 — 特定領域の問題に特化している
マクロ言語 — アプリケーションソフトウェアに内蔵される
グルー言語 — 複数のアプリケーションソフトウェアの動作を協調させる
スクリプト言語には ActionScript、AppleScript、awk、bash、Emacs Lisp、Groovy、JavaScript、Lua、Perl、PHP、Python、REXX、Ruby、PowerShell、SKILL、Tcl、VBScript などがある。

多くのプログラミング言語はテキストのソースコードでプログラムが記述されるが、ビジュアルプログラミング言語はプログラム要素を視覚的に表現し操作することでプログラムを構築する。

コンピュータが実際に実行する命令は機械語で現されている。これは一般に人間が読めない（読まない）バイナリ形式のコンピュータ言語であり、CPUの命令セットに対応している。高級言語のソースコードはコンパイラによって機械語に変換される。プログラミング言語によってはバイトコードのようにコンピュータ・アーキテクチャと独立した移植性の高い中間言語を使う場合がある。そのようなシステムでは、バイトコードから機械語へ変換するコンパイラもあるか、バイトコードを仮想機械ないしバイトコードインタプリタで実行する。よく知られている例としてJavaがある。

 プログラミング言語
 低水準言語 - ハードウェアに近く、抽象化が無い、あるいは薄い。
 機械語
 アセンブリ言語
 高水準言語 - 抽象の水準が高い。人間の考え方に近い形で記述出来る、といったように信じている向きもあるようだが、人間の考え方のように曖昧であったり間違っていたりするものをうまく表現できるプログラミング言語はあまり無い。
 スクリプト言語
 マクロ言語
 ビジュアルプログラミング言語
 中間言語

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

ソフトウェアの動作を設定する言語 
設定ファイル形式（.INI ファイルなど）

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

人間が記述しない言語 
 ハードウェア制御言語 - プリンタや表示装置の制御など。

関連項目

参考文献

外部リンク 
 The Encyclopedia of Programming Languages