この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "プログラミングパラダイム"
プログラミングパラダイム(英: programming paradigm)とは、プログラミングにおける模範である。 プログラミングパラダイムは、プログラマにプログラムの見方を与えるものと言える。例えばオブジェクト指向プログラミングでは、プログラムとはオブジェクトを作りそれを管理するもの。関数型言語では、状態を持たない関数の評価の連続。 プログラミング言語が違えば、対応できるパラダイムも違ってくる。SmalltalkやJavaは、手続き型やオブジェクト指向、Haskellは、関数プログラミング、というように、比較的少数のパラダイムに対応している。一方、多数のパラダイムに対応した言語(マルチパラダイムプログラミング言語)もある。 多くのプログラミングパラダイムには禁じ手がある。純粋な関数型プログラミングでは、副作用があってはならない。構造化プログラミングでは、gotoの無制限な利用が戒められる。特にこの理由により、古いスタイルに慣れた者からは、よく非現実的または過剰に厳密なものと見なされる。しかし、こうした特定のテクニックを避けることで、プログラミング言語の一般の法則に制約されず、プログラムの正確さ(または単にその動作の理解)についての法則を証明しやすくする。 マルチパラダイムプログラミング言語が登場してから、プログラミングパラダイムとプログラミング言語との関連は複雑になっている。たとえば、C++は手続き型プログラミング、ジェネリックプログラミング、オブジェクト指向プログラミングに対応するよう設計されているが、設計時には個々の部分毎にどのパラダイムを使うか選ぶ必要に迫られる。あるプログラムは全て手続き型プログラミングで作り、またあるプログラムは全てオブジェクト指向で作り、また別のプログラムは両方を混在して作るという具合である。 この節には独自研究が含まれているおそれがあります。問題箇所を検証し出典を追加して、記事の改善にご協力ください。議論はノート 比較されるものは横に並べてある。括弧内はそれを用いている例である。
概要
例
構造化プログラミング - 非構造化プログラミング
命令型プログラミング - 宣言型プログラミング
メッセージ送信プログラミング
手続き型プログラミング - 非手続き型言語
イベント駆動型プログラミング
シグナルプログラミング
スタック指向プログラミング
クラスベースプログラミング - プロトタイプベースプログラミング ※オブジェクト指向プログラミングの中での分類
並行論理プログラミング
制約プログラミング
論理プログラミング
解集合プログラミング(en:Answer Set Programming)
制約論理プログラミング
並行プログラミング
並行制約プログラミング
関数型プログラミング
コンポーネント指向プログラミング (OLE)
アスペクト指向プログラミング (AspectJ)
契約プログラミング
リフレクティブプログラミング
データフロープログラミング
リアクティブプログラミング(英語版) (スプレッドシート)
関連項目
抽象化 (計算機科学)
Expression problem
表
話
編
歴
コンピュータ・プログラミング言語
低水準言語
機械語
アセンブリ言語
高水準言語
1950年代
FORTRAN
ALGOL
RPG
COBOL
1960年代
LISP
CPL
BASIC
PL/I
APL
BCPL
Simula
LOGO
B
1970年代
Forth
Pascal
C
Prolog
Smalltalk
Scheme
ML
AWK
Ada
1980年代
C++
Objective-C
Common Lisp
Eiffel
Erlang
Perl
Mathematica
J