概要
何かプログラムで実現したい目標がある時に、それをどうやって実現するかという考え方や流派をプログラミングパラダイムという。ある言語内の固有の事情に関しては「プログラミングスタイル」のような呼ばれ方をするので、大抵プログラミング言語の設計パラダイムを指している場合が多い。
プログラミング言語ではチューリング完全という理論的な限界があらかじめ存在するため、実はどんなパラダイムのどんな言語であろうと実現可能な内容自体はそれほど変わらない(OSサポートなんかは別だが)
よってパラダイムの違いというのは概ね効率と美的センスの問題であり、より美しく簡潔で的確な表現の出来る言語はエライ!とされるわけである。それは大規模化への適応力であったり、バグを出さない工夫であったり、特殊分野でのニッチ適応であったり、場合によってはよりバカなことができる能力であったりする。Perlをみよ。
プログラミングの歴史上主立ったパラダイムは大体下記の一覧辺りだろう。ちなみにこれらは必ずしも排他的なパラダイムではないので注意。オブジェクト指向といったら普通は構造化を含むし、あるパラダイムが問題とするテーマが他のパラダイムでは考える必要自体無かったり、といったことはある。最近のトレンドは手続き型ベースのマルチパラダイム言語だが、「構造化と大体互換でOOPとジェネリックが付いてて部分的に関数型で契約もいけます」とかそんな感じで実に21世紀的なことになっている。
- 手続き型言語
- 構造化プログラミング
- オブジェクト指向(ただし静的型と動的型では半分別もの)
- アスペクト指向
- 関数型プログラミング
- 契約プログラミング
- イベント駆動型プログラミング
- データフロープログラミング
- 並列プログラミング
- 論理プログラミング
- 文芸プログラミング
- ジェネリックプログラミング(メタプログラミング)
ちゃんとした名前は無いが、何となくパラダイム的に考えられている標語も挙げれば、
等々。
関連項目
- 3
- 0pt