プログラミングパラダイムとは、プログラミングにおける考え方のスタイルのことである。

概要

プログラミングパラダイムは、プログラマーにとってどのようにプログラミングを行うべきかという見方を与えるものである。

プログラミングパラダイムでは、推奨されていることや禁じられていることがある程度決まっているが、厳密に定義している書類やウェブサイトは存在しない。そのため、ある意味暗黙的なルールとなっている部分がある。

それぞれの言語ではプログラミングパラダイムが顕著に表れる部分がある。また、複数のプログラミングパラダイムを使用している言語(マルチパラダイムプログラミング言語)も存在する。

プログラミングパラダイムの種類

オブジェクト指向

「オブジェクト」でプログラムを構築する考え方。
データの構造と手続きを1つにまとめたものをオブジェクトとして扱う(らしい)。

public class MyObject() {
	public class void MyFunction() {
		Console.WriteLine("Hello World");
	} // これが手続き(関数)
} // これがオブジェクト(クラス)

主なオブジェクト指向プログラミング言語

  • Objective-C
  • C++
  • C#
  • Java
  • Python

詳しくはオブジェクト指向プログラミングを参照。

手続き型

一連の手続きや関数でプログラムを構築する考え方。
コードは上から下へ順番に実行される。

#include <stdio.h>
 
// 関数の定義
void greet() {
    printf("Hello, world!\n");
}
 
int main() {
    // 変数の宣言と初期化
    int a = 5;
    int b = 3;
    int sum = a + b;
 
    // 関数の呼び出し
    greet();
    printf("Sum: %d\n", sum);
 
    // 条件分岐
    if (sum > 5) {
        printf("Sum is greater than 5\n");
    } else {
        printf("Sum is 5 or less\n");
    }
 
    // ループ
    for (int i = 0; i < 5; i++) {
        printf("i: %d\n", i);
    }
 
    return 0;
}

主な手続き型プログラミング言語

  • C
  • Pascal
  • BASIC
  • Python

詳しくは手続き型プログラミングを参照。

関数型

データを変えず、関数の組み合わせだけでプログラムを構築する考え方。
手続き型との大きな違いは、変数が不変(イミュータブル)だという点。

const addOne = x => x + 1;
console.log(addOne(3)); // 4(xは変わらない)

主な関数型プログラミング言語

  • Haskell
  • Elixir
  • JavaScript
  • Rust

詳しくは関数型プログラミングを参照。