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