Skip to content

Programming Paradigms

A programming paradigm is a style of programming, a way of thinking about software construction based on some fundamental, defining principles. There are several programming paradigms, each with its own strengths and weaknesses. The term programming paradigm may also be used to refer to a single programming language

Common Programming paradigms:

  1. Imperative: in which the programmer instructs the machine how to change its state

    1. Procedural Programming: which groups instructions into procedures

      • Languages: C, Pascal, Fortran, COBOL, ALGOL, PL/I, Ada, Modula-2, Oberon, Oberon-2, Component Pascal, Object Pascal, Turbo Pascal, Delphi, Free Pascal, Visual
    2. Object-Oriented Programming: which groups instructions with the part of the state they operate on

      • Languages: Java, C++, C#, Python, Ruby, Swift, Objective-C, Kotlin, Scala, PHP, JavaScript, TypeScript, Dart, Visual Basic, Delphi, Eiffel, Smalltalk, Simula, Self, Newspeak, ABAP, Ada, COBOL, Fortran, RPG, PL/I, Object Pascal, Clarion, ColdFusion, PowerBuilder, Progress, Realbasic, Real Studio, Visual FoxPro, Visual DataFlex, Visual Objects, Xojo
  2. Declarative: in which the programmer merely declares properties of the desired result, but not how to compute it

    1. Functional Programming: in which the desired result is declared as the value of a series of function applications

      • Languages: Haskell, Lisp, Scheme, ML, Scala, Clojure, F#, Erlang, Elixir, Elm, OCaml, Racket, PureScript, Idris, Agda, Coq, ReasonML
    2. Logic: in which the desired result is declared as the answer to a question about a system of facts and rules

      • Languages: Prolog
    3. Mathematical: in which the desired result is declared as the solution of an optimization problem

    4. Reactive: in which the desired result is declared with data streams and the propagation of change