TSV

プログラミング言語のパラダイム - TSV

プログラミング言語のパラダイムとは、プログラムの構造や実行方法を定義する基本的なスタイルや手法のことです。命令型、宣言型、オブジェクト指向、関数型などの主要なパラダイムがあり、それぞれが異なる問題解決アプローチを提供します。現代の多くの言語は複数のパラダイムを組み合わせたマルチパラダイム言語として設計されており、開発者は問題に最適なアプローチを選択できます。

プログラミング パラダイム 命令型 宣言型 オブジェクト指向 関数型 ソフトウェア工学
code	slug	name	description	category	exampleLanguages	keyCharacteristics
IMP	imperative	命令型プログラミング	プログラムの状態を変更するステップバイステップの命令で構成されるパラダイムです。	命令型	["C","Fortran","BASIC","Pascal","COBOL"]	["ステートメントの逐次実行","変数と代入","制御フロー(ループ、条件分岐)","メモリ状態の変更"]
PROC	procedural	手続き型プログラミング	再利用可能な手続き(関数)を重視する命令型パラダイムの派生型です。	命令型	["C","C++","Java","Pascal","Go"]	["関数・手続きの定義","コードの再利用性","構造化された制御フロー","スコープとモジュール性"]
OOP	object-oriented	オブジェクト指向プログラミング	データと振る舞いをカプセル化したオブジェクトを中心に構成されるパラダイムです。	命令型	["Java","C++","Python","Ruby","C#","Smalltalk","Simula"]	["カプセル化","継承","多態性(ポリモーフィズム)","抽象化","クラスとオブジェクト"]
DEC	declarative	宣言型プログラミング	「何を達成するか」を記述し、「どのように達成するか」の制御フローを抽象化するパラダイムです。	宣言型	["SQL","HTML","CSS","Prolog","Haskell"]	["結果の記述","制御フローの抽象化","副作用の排除","高い可読性"]
FUNC	functional	関数型プログラミング	数学的関数の評価として計算を行い、不変性と副作用の回避を重視するパラダイムです。	宣言型	["Haskell","Scala","Clojure","Erlang","F#","Lisp","ML"]	["純粋関数","不変性(イミュータビリティ)","高階関数","関数合成","再帰","副作用の回避"]
LOGIC	logic	論理プログラミング	事実とルールを記述し、システムに解を推論させる宣言型パラダイムです。	宣言型	["Prolog","Datalog","Answer Set Programming (ASP)"]	["事実とルールの記述","論理推論","パターンマッチング","バックトラッキング"]
REACT	reactive	リアクティブプログラミング	非同期データストリームと変化の伝播に焦点を当てたパラダイムです。	その他	["RxJava","RxJS","Reactor","Akka","Elm"]	["データストリーム","非同期処理","イベント駆動","バックプレッシャー制御","変更の伝播"]
PARA	parallel	並列プログラミング	複数のプロセッサに処理を分散させて同時実行を実現するパラダイムです。	その他	["CUDA","OpenMP","MPI","C++ (with libraries)","Go"]	["マルチスレッド/マルチプロセス","タスク分割","同期と通信","負荷分散"]
EVENT	event-driven	イベント駆動型プログラミング	イベントの発生とそれに対するハンドラの実行を中心に構成されるパラダイムです。	その他	["JavaScript","C#","Visual Basic","ActionScript"]	["イベントループ","コールバック/ハンドラ","非同期処理","発行・購読モデル"]
GENERIC	generic	汎用プログラミング	データ型を抽象化し、型に依存しない再利用可能なコードを記述するパラダイムです。	その他	["C++ (Templates)","Java (Generics)","C#","Rust","Ada"]	["型パラメータ","テンプレート/ジェネリクス","型安全性","コードの再利用性"]