コンテンツにスキップ

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

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。Luckas-bot (会話 | 投稿記録) による 2012年2月25日 (土) 20:57個人設定で未設定ならUTC)時点の版 (r2.7.1) (ロボットによる 追加: fi:Ohjelmointiparadigma)であり、現在の版とは大きく異なる場合があります。

プログラミングパラダイム (programming paradigm)とはプログラミングにおけるパラダイムである。

プログラミングパラダイムは、プログラマにプログラムの見方を与えるものと言える。たとえば、オブジェクト指向プログラミングにおいて、プログラムとはオブジェクトをつくりそれを管理するものである。関数型プログラミングにおいては、状態を持たない関数評価の連続である。

プログラミング言語が異なれば、対応できるパラダイムも異なってくる。SmalltalkJavaはオブジェクト指向プログラミングのみに対応しており、HaskellSchemeは関数プログラミングのみに対応している。一方で、Common LispPythonのように複数のパラダイムに対応した言語(マルチパラダイムプログラミング言語)も存在する。

多くのプログラミングパラダイムでは、「やってはいけないこと」(禁じ手)が存在する。たとえば純粋な関数型プログラミングでは、副作用があってはならず、構造化プログラミングではgotoの使用価値を認めていない。特にこの理由により、古いスタイルに慣れている人々からは非現実的または過剰に厳密なものとしてよく見なされる。しかしながら、こうした特定のテクニックを避けるということで、プログラミング言語の一般的な法則に制約されることなく、プログラムの正確さ(あるいは単にその動作を理解すること)についての法則を証明しやすくする。

マルチパラダイムプログラミング言語が登場してから、プログラミングパラダイムとプログラミング言語との関連は複雑になっている。たとえば、C++手続き型プログラミングジェネリックプログラミングオブジェクト指向プログラミングに対応するよう設計されているが、設計時には個々の部分毎にどのパラダイムを使うか選ぶ必要に迫られる。あるプログラムは全て手続き型プログラミングで作り、またあるプログラムは全てオブジェクト指向で作り、また別のプログラムは両方を混在して作るという具合である。

対になるものは横に並べてある。括弧内はそれを用いている例である。