「プログラミングパラダイム」の版間の差分

削除された内容 追加された内容
AlleborgoBot (会話 | 投稿記録)
m ロボットによる 追加: lv:Programmēšanas paradigma
AuBot~jawiki (会話 | 投稿記録)
3行目:
プログラミングパラダイムは、[[プログラマ]]にプログラムの見方を与えるものと言える。たとえば、[[オブジェクト指向プログラミング]]において、プログラムとは[[オブジェクト]]をつくりそれを管理するものである。[[関数型言語|関数型プログラミング]]においては、状態を持たない[[関数 (プログラミング)|関数]]の[[評価]]の連続である。
 
[[プログラミング言語]]が異なれば、対応できるパラダイムも異なってくる。[[Smalltalk]]や[[Java (プログラミング言語)|Java]]はオブジェクト指向プログラミングのみに対応しており、[[Haskell]]や[[Scheme]]は関数プログラミングのみに対応している。一方で、[[Common Lisp]]や[[Python]]のように複数のパラダイムに対応した言語([[マルチパラダイムプログラミング言語]])も存在する。
 
多くのプログラミングパラダイムでは、「やってはいけないこと」(禁じ手)が存在する。たとえば純粋な関数型プログラミングでは、[[副作用 (プログラム)|副作用]]があってはならず、[[構造化プログラミング]]では[[Goto文|goto]]の使用価値を認めていない。特にこの理由により、古いスタイルに慣れている人々からは非現実的または過剰に厳密なものとしてよく見なされる。しかしながら、こうした特定のテクニックを避けるということで、プログラミング言語の一般的な法則に制約されることなく、プログラムの正確さ(あるいは単にその動作を理解すること)についての法則を証明しやすくする。
31行目:
* [[ツリープログラミング]]
* 註釈プログラミング (''Annotative programming'') - http://www.flare.org
* 属性指向プログラミング (注釈プログラミングと同じかもしれない) ([[Java (プログラミング言語)|Java]] 5 Annotations及び[[C Sharp|C#]]の属性)
* [[コンセプト指向プログラミング]]