プログラミングパラダイムとは
「プログラミングパラダイム」とは、プログラミングの考え方,規範,記述方法の枠組みのこと。以下にその枠組みの簡単な親子関係を記載する。また、図の下の説明文の各文末には、それぞれの特徴を持つ言語で0-10までの加算結果を出力するプログラムを参考に載せている。
命令型言語
手続き型言語
特徴:小さな関数の塊を組み合わせて記述される。プログラムは文の並びであり、逐次的に実行していく。目で追って理解しやすいシンプルなコードが特徴的だが、反対に複雑な構造を持つ大規模なWebサービスの開発等には不向き。しかし、電卓アプリなどで必要となる計算処理やデータ処理能力には優れている。
主な言語:C言語
,COBOL
,Fortran
など
int sum = 0;
for (int i = 0; i <= 10; i++) {
sum += i;
}
printf("%d", sum);
オブジェクト指向言語(OO言語)
特徴:OO言語の根本的な考えは、システムのあらゆる対象をオブジェクトとして捉える点にある。複雑でコード量も増えてしまうが、反対に複雑な構造を持つ大規模なWebサービスの開発等には適している。また、オブジェクトの追加・変更が容易であるため、コードの再利用性や拡張性が高いといった特徴もある。
主な言語:Java
,Python
,C#
など
sum = 0
for i in range(11):
sum += i
print(sum)
宣言型言語
関数型言語
特徴:関数型言語で扱う関数とは、命令型言語の関数とは意味合いが違い、数学的な関数の意味合いを持つ。関数を中心として組み立てられるため、数学的・論理的側面が強い。ラムダ記法が特徴的であり、とても利便性が高いため、命令型言語で紹介したJava
にも一部取り入れられている。
主な言語:Lisp
,Standard ML
,Haskell
など
(define sum (lambda (n)
(if (= n 0) 0 (+ n (sum (- n 1))))))
(display (sum 10))
論理型言語
特徴:関数型言語と同様に手続きを記述しない言語であるが、論理型言語では呼んで字の如く、論理式を組み合わせてプログラムを表現する。「事実」と「ルール」を積み重ねていき、条件を与えることで、その条件下での解を得るプログラミング言語である。
主な言語:Prolog
など
sum(0, 0) :- !.
sum(N, R) :- N1 is N - 1, sum(N1, Rt), R is Rt + N.
?- sum(10, X).