INI
Programming Language Paradigms - INI
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
[item.imperative]
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=["ステートメントの逐次実行","変数と代入","制御フロー(ループ、条件分岐)","メモリ状態の変更"]
[item.procedural]
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=["関数・手続きの定義","コードの再利用性","構造化された制御フロー","スコープとモジュール性"]
[item.object-oriented]
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=["カプセル化","継承","多態性(ポリモーフィズム)","抽象化","クラスとオブジェクト"]
[item.declarative]
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=["結果の記述","制御フローの抽象化","副作用の排除","高い可読性"]
[item.functional]
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=["純粋関数","不変性(イミュータビリティ)","高階関数","関数合成","再帰","副作用の回避"]
[item.logic]
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=["事実とルールの記述","論理推論","パターンマッチング","バックトラッキング"]
[item.reactive]
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=["データストリーム","非同期処理","イベント駆動","バックプレッシャー制御","変更の伝播"]
[item.parallel]
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=["マルチスレッド/マルチプロセス","タスク分割","同期と通信","負荷分散"]
[item.event-driven]
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=["イベントループ","コールバック/ハンドラ","非同期処理","発行・購読モデル"]
[item.generic]
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=["型パラメータ","テンプレート/ジェネリクス","型安全性","コードの再利用性"]