プログラミング言語
コンピュータはマシン語しか解釈できない。そのため我々がコンピュータに命令を与えるためには、コンピュータに何らかの方法で目的の処理をマシン語で伝えなければならない。
しかしマシン語は自然言語とあまりにも異なるため、我々が直接マシン語を記述するのは非常に困難である。そこで、我々はマシン語を抽象化したプログラミング言語を用いてコンピュータに命令を与えることが多い。
プログラミング言語というアイデア
このイノベーションの根本的なアイデアは抽象化である。 元来数学で培われてきた抽象化の概念をコンピュータに適用することで、我々はマシン語を抽象化したプログラミング言語を作り出すことができた。 このためプログラミング言語は数学と密接な関係があるし、プログラミング言語の設計には数学的な思考が必要とされることも多い。
これにより以下のことが連鎖的に可能になった。
- 人間が理解しやすい形でコンピュータに命令を与えることができる
- コンピュータのアーキテクチャに依存しない命令を記述することができる
- 複雑な処理を簡潔に記述することができる
- プログラムの保守性が向上する
- プログラムの再利用性が向上する
- プログラムの生産性が向上する
プログラミング言語の分類
プログラミング言語は様々な観点から分類することができる。 例えば、以下のような分類がある。
- レベルによる分類: 低水準言語と高水準言語
- パラダイムによる分類: 手続き型言語、オブジェクト指向言語、関数型言語、論理型言語など
- 用途による分類: 汎用言語、ドメイン固有言語など
- 実装方法による分類: コンパイル言語とインタプリタ言語など
- その他の分類: 静的型付け言語と動的型付け言語など このような分類はあくまで便宜的なものであり、実際のプログラミング言語は複数のカテゴリにまたがることが多い。