1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【プログラミング言語】プログラミングパラダイムを理解する

Posted at

プログラミングパラダイムとは

「プログラミングパラダイム」とは、プログラミングの考え方,規範,記述方法の枠組みのこと。以下にその枠組みの簡単な親子関係を記載する。また、図の下の説明文の各文末には、それぞれの特徴を持つ言語で0-10までの加算結果を出力するプログラムを参考に載せている。

programmingparadigm

命令型言語

手続き型言語

特徴:小さな関数の塊を組み合わせて記述される。プログラムは文の並びであり、逐次的に実行していく。目で追って理解しやすいシンプルなコードが特徴的だが、反対に複雑な構造を持つ大規模なWebサービスの開発等には不向き。しかし、電卓アプリなどで必要となる計算処理やデータ処理能力には優れている。

主な言語:C言語COBOLFortranなど

sum.c
int sum = 0;
for (int i = 0; i <= 10; i++) {
    sum += i;
}
printf("%d", sum);

オブジェクト指向言語(OO言語)

特徴:OO言語の根本的な考えは、システムのあらゆる対象をオブジェクトとして捉える点にある。複雑でコード量も増えてしまうが、反対に複雑な構造を持つ大規模なWebサービスの開発等には適している。また、オブジェクトの追加・変更が容易であるため、コードの再利用性や拡張性が高いといった特徴もある。

主な言語:JavaPythonC#など

sum.py
sum = 0
for i in range(11):
    sum += i
print(sum) 

宣言型言語

関数型言語

特徴:関数型言語で扱う関数とは、命令型言語の関数とは意味合いが違い、数学的な関数の意味合いを持つ。関数を中心として組み立てられるため、数学的・論理的側面が強い。ラムダ記法が特徴的であり、とても利便性が高いため、命令型言語で紹介したJavaにも一部取り入れられている。

主な言語:LispStandard MLHaskellなど

sum.lsp
(define sum (lambda (n)
  (if (= n 0) 0 (+ n (sum (- n 1))))))
(display (sum 10))

論理型言語

特徴:関数型言語と同様に手続きを記述しない言語であるが、論理型言語では呼んで字の如く、論理式を組み合わせてプログラムを表現する。「事実」と「ルール」を積み重ねていき、条件を与えることで、その条件下での解を得るプログラミング言語である。

主な言語:Prologなど

sum.pl
sum(0, 0) :- !.
sum(N, R) :- N1 is N - 1, sum(N1, Rt), R is Rt + N.
?- sum(10, X).
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?