Markdown
Programming Language Paradigms - Markdown
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"] | ["型パラメータ","テンプレート/ジェネリクス","型安全性","コードの再利用性"] |