LoginSignup
0
1

More than 5 years have passed since last update.

プログラミングパラダイムについて簡単にまとめました

Last updated at Posted at 2018-12-12

今週はプログラミングパラダイムを勉強しました。
自分なりの理解をわかりやすくまとめていきたいと思います。

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

プログラミングのスタイルをその特徴に応じて分類する方法です。
今回は代表的なものを紹介したいと思います。

命令型プログラミング

単純にコンピューターに命令するための構文です。
プログラミングが普及し出した1960年代によく用いられたgo to文を始めとして、お馴染みのifやwhileなどの条件分岐もこれに当てはまります。
フローチャートをイメージすればわかりやすいです。

宣言型プログラミング

命令型のように、導き出したい対象を出力するための処理方法を記述するのではなく、対象の性質などをそのまま宣言することでプログラミングすることです。
つまり、変数や関数がこれに当てはまります。

関数型プログラミング

処理方法を記述するのではなく、ユーザーの入力に対して必要な結果を導く関数を用意し、その関数を組み合わせて記述することです。
変数の参照や変更が無く、入力としたデータのみが変化していく方式ですので内容が簡潔でエラーが起きにくいです。

構造化プログラミング

命令型プログラミングの一部を今で言う関数やメソッドを使い抽象度の高いものに置き換えたものです。
単純なgo toを使わずにforやifなどのループや条件分岐などを用いて記述します。
これにより、大規模なシステムがつくりやすくなりました。
命令型プログラミングを1つのフローチャートとしたとき、構造化プログラミングは、簡潔化したフローチャートをたくさん組み合わせたイメージです。

オブジェクト指向プログラミング

現在主流であるパラダイムであり、原理原則は構造化プログラミングに似ています。
プログラミングを開発するとき、一連の機能を複数のモジュールに分割して開発する方法があります。
この方法では、モジュールは独立性が高いほど良いとされ、それぞれでコンパイルやデバックを可能にしている場合が多いです。
しかし、この場合1つ1つのモジュールで関数の定義などをしないといけないため、定義に対する値(インスタンス)が複数存在することになり、統合するときに混乱します。
その問題を解決するためにオブジェクト指向プログラミングが生まれました。
これは、単なるモジュールではなく、複数のインスタンスを整理して管理する仕組みを備えたものです。
代表的な特徴として、カプセル化・多態性・継承・委譲の4つあります。
詳しくはまた次回まとめていきたいと思います。

ここまでお読みいただきありがとうございました。

0
1
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
0
1