TSV

Programming Language Paradigms - TSV

Programming language paradigms are fundamental styles or approaches that define the structure and execution of programs. Major paradigms include imperative, declarative, object-oriented, and functional, each offering different approaches to problem-solving. Many modern languages are designed as multi-paradigm languages, combining multiple paradigms to allow developers to choose the most suitable approach for their problems.

programming paradigm imperative declarative object-oriented functional software engineering
code	slug	name	description	category	exampleLanguages	keyCharacteristics
IMP	imperative	Imperative Programming	A paradigm consisting of step-by-step instructions that change program state.	Imperative	["C","Fortran","BASIC","Pascal","COBOL"]	["ステートメントの逐次実行","変数と代入","制御フロー(ループ、条件分岐)","メモリ状態の変更"]
PROC	procedural	Procedural Programming	A derivative of imperative paradigm that emphasizes reusable procedures (functions).	Imperative	["C","C++","Java","Pascal","Go"]	["関数・手続きの定義","コードの再利用性","構造化された制御フロー","スコープとモジュール性"]
OOP	object-oriented	Object-Oriented Programming	A paradigm centered around objects that encapsulate data and behavior.	Imperative	["Java","C++","Python","Ruby","C#","Smalltalk","Simula"]	["カプセル化","継承","多態性(ポリモーフィズム)","抽象化","クラスとオブジェクト"]
DEC	declarative	Declarative Programming	A paradigm that describes 'what' to achieve, abstracting away the control flow of 'how' to achieve it.	Declarative	["SQL","HTML","CSS","Prolog","Haskell"]	["結果の記述","制御フローの抽象化","副作用の排除","高い可読性"]
FUNC	functional	Functional Programming	A paradigm that treats computation as the evaluation of mathematical functions, emphasizing immutability and avoiding side effects.	Declarative	["Haskell","Scala","Clojure","Erlang","F#","Lisp","ML"]	["純粋関数","不変性(イミュータビリティ)","高階関数","関数合成","再帰","副作用の回避"]
LOGIC	logic	Logic Programming	A declarative paradigm where facts and rules are described, letting the system infer solutions.	Declarative	["Prolog","Datalog","Answer Set Programming (ASP)"]	["事実とルールの記述","論理推論","パターンマッチング","バックトラッキング"]
REACT	reactive	Reactive Programming	A paradigm focused on asynchronous data streams and the propagation of change.	Other	["RxJava","RxJS","Reactor","Akka","Elm"]	["データストリーム","非同期処理","イベント駆動","バックプレッシャー制御","変更の伝播"]
PARA	parallel	Parallel Programming	A paradigm that distributes processing across multiple processors for simultaneous execution.	Other	["CUDA","OpenMP","MPI","C++ (with libraries)","Go"]	["マルチスレッド/マルチプロセス","タスク分割","同期と通信","負荷分散"]
EVENT	event-driven	Event-Driven Programming	A paradigm structured around event occurrences and the execution of their handlers.	Other	["JavaScript","C#","Visual Basic","ActionScript"]	["イベントループ","コールバック/ハンドラ","非同期処理","発行・購読モデル"]
GENERIC	generic	Generic Programming	A paradigm that abstracts data types to write reusable code independent of specific types.	Other	["C++ (Templates)","Java (Generics)","C#","Rust","Ada"]	["型パラメータ","テンプレート/ジェネリクス","型安全性","コードの再利用性"]