言語パラダイムとは?プログラミング言語の設計思想・書き方のスタイル

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

言語パラダイムとは(全体像)

言語パラダイムは、プログラムをどんな考え方で組み立てるかのスタイルのこと。流派のようなもので、同じ料理(処理)でも作り方の流儀が違う。

身近にたとえると、料理の流派だ。手続き型は「レシピ通りに順に作る」オブジェクト指向は「食材ごとに専門の担当を置く」関数型は「各工程を独立させ、混ぜずに変換だけする」、というイメージ。

押さえるのは、パラダイムごとに代表言語があり、現代は複数を混ぜる(マルチパラダイム)のが主流だということ。


詳しく:主要パラダイムとOOPの3柱だけ覚えれば戦える

ここが記事の心臓部。まず主要なパラダイムを見ましょう。

主要な言語パラダイム

パラダイム考え方代表言語
手続き型命令を順に書いて変数を更新するC・Pascal
オブジェクト指向(OOP)モノ(オブジェクト)単位でまとめるJava・C++・Python
関数型副作用を避け、関数で組み立てるHaskell・Lisp
論理型事実と規則を書いて質問で推論するProlog
並行型多くの処理を同時に動かすErlang・Go

手続き型は、命令を上から順に書いていく基本のスタイル。オブジェクト指向(OOP)は、データと操作を「モノ(オブジェクト)」にまとめて組み立てるスタイルで、いちばん広く使われています。関数型は、副作用(変数の書き換えなど)を避け、関数の組み合わせで書くスタイルです。

OOPには、覚えておきたい3つの柱があります。

オブジェクト指向の3つの柱

意味
カプセル化データと操作を1つにまとめ、内部を隠す
継承既存のものを引き継いで広げる
多態性同じ呼び方で、相手によって違う動きをする

ここで一番のひっかけが「Pythonはオブジェクト指向だけの言語」という誤解。実際のPythonは、手続き型・オブジェクト指向・関数型を混ぜて書けるマルチパラダイムです。

もう1つのひっかけが「関数型は高度で難しいだけ」。関数型は副作用が少なく、かえって学びやすい面もあるスタイルです。

わかりやすく言い換えると

要するに、料理の流派のたとえで覚えるとラクです。

主要パラダイム … 手続き型(順に作る)、OOP(担当を分ける)、関数型(混ぜず変換だけ)

OOPの3つの柱 … カプセル化(まとめて隠す)・継承(引き継ぐ)・多態性(同じ呼び方で違う動き)

現代はマルチパラダイム … 複数を混ぜる(Pythonも手続き+OOP+関数型)

つまり、「主要パラダイムと代表言語」「OOPの3柱」、この2点が試験の急所です。


試験のツボ

🔴 一番出る:主要パラダイムと代表言語

①手続き型(C)/オブジェクト指向(Java・C++・Python)

②関数型(Haskell・Lisp)/並行型(Erlang・Go)

🔴 次に出る:オブジェクト指向の3つの柱

①カプセル化(まとめて内部を隠す)・継承(引き継いで広げる)

②多態性(同じ呼び方で相手により違う動き)

🟡 押さえると安定:マルチパラダイム

①現代は複数のパラダイムを混ぜるのが主流(Scala・Kotlin・Rustなど)

②Pythonはオブジェクト指向だけではない(手続き型・関数型も書ける)


よくある間違い

「Pythonはオブジェクト指向だけの言語」→ ✗  Pythonは手続き型・オブジェクト指向・関数型を混ぜて書けるマルチパラダイム。

「関数型は高度で難しいだけ」→ ✗  関数型は副作用が少なく、かえって学びやすい面もある。

「オブジェクト指向の柱はカプセル化の1つだけ」→ ✗  OOPの柱はカプセル化・継承・多態性の3つ。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(主要パラダイム)

📝 オリジナル問題 1 主要な言語パラダイム

言語パラダイムに関する次の記述のうち、正しいものはどれか。

  1. 言語パラダイムは紙に印刷する装置のことで、プログラムの書き方とは無関係なものだとされる
  2. 言語パラダイムは1種類しかなく、手続き型以外のスタイルは存在しないものだとされている
  3. オブジェクト指向は命令を順に書くだけの方式で、モノ単位でまとめることはないものとされる
  4. 手続き型は命令を順に書き、オブジェクト指向はモノ単位でまとめ、関数型は副作用を避ける
テクマスター
テクマスター 解答・解説

解答は 4 ですよ。

手続き型は命令を順に書き、オブジェクト指向はモノ単位でまとめ、関数型は副作用を避けるスタイルですね。料理の流派のように作り方が違います。

選択肢1の「印刷する装置」、選択肢2の「1種類しかない」、選択肢3の「OOPは順に書くだけ」はどれも誤りですよ。

選択肢判定理由
1印刷する装置ではない
2複数のパラダイムがある
3OOPはモノ単位でまとめる
43つのスタイルの説明が正しい

オリジナル問題2(OOPの3つの柱)

📝 オリジナル問題 2 オブジェクト指向の3つの柱

オブジェクト指向の3つの柱に関する次の記述のうち、正しいものはどれか。

  1. OOPの柱はカプセル化の1つだけで、継承や多態性は柱に含まれないものだとされている
  2. OOPの柱は紙に印刷する手順のことで、プログラムの設計とは無関係なものだとされている
  3. OOPの3つの柱はカプセル化・継承・多態性で、データと操作を1つにまとめて組み立てる
  4. OOPの3つの柱は手続き型・関数型・論理型で、モノ単位とは無関係なものだとされている
テクマスター
テクマスター 解答・解説

解答は 3 ですよ。

OOPの3つの柱はカプセル化・継承・多態性で、データと操作をまとめて組み立てるスタイルですね。専門の担当を置くイメージです。

選択肢1の「1つだけ」、選択肢2の「印刷する手順」、選択肢4の「手続き型など」はどれも誤りですよ。

選択肢判定理由
1柱は3つある
2印刷する手順ではない
3カプセル化・継承・多態性
4それはパラダイムの種類

オリジナル問題3(マルチパラダイム)

📝 オリジナル問題 3 マルチパラダイム

マルチパラダイムに関する次の記述のうち、正しいものはどれか。

  1. Pythonはオブジェクト指向だけの言語で、手続き型や関数型では書けないものだとされている
  2. Pythonは手続き型・オブジェクト指向・関数型を混ぜて書けるマルチパラダイムの言語だ
  3. マルチパラダイムは紙に印刷する装置のことで、言語の設計とは無関係なものだとされている
  4. 現代の言語はすべて手続き型だけで、複数のパラダイムを混ぜることはないものだとされている
テクマスター
テクマスター 解答・解説

解答は 2 ですよ。

Pythonは手続き型・オブジェクト指向・関数型を混ぜて書けるマルチパラダイムの言語ですね。現代は複数を混ぜるのが主流です。

選択肢1の「OOPだけ」、選択肢3の「印刷する装置」、選択肢4の「すべて手続き型だけ」はどれも誤りですよ。

選択肢判定理由
1手続き型・関数型でも書ける
2複数を混ぜるマルチパラダイム
3印刷する装置ではない
4複数を混ぜるのが現代主流

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る