Note that many languages are multi-paradigm.

Imperative programming

  • the programmer instructs the machine how to change its state
  • E.g. C, java, python

Procedural Programming

  • groups instructions into procedures
  • E.g. C, Fortran, Pascal

Object-Oriented Programming (OOP)

  • groups instructions with the part of the state they operate on
  • E.g. java, cpp, python

Declarative Programming

  • the programmer merely declares properties of the desired result, but not how to compute it
  • E.g. SQL, HTML, CSS

Functional programming

  • the desired result is declared as the value of a series of function applications
  • E.g. Haskell, Lisp (common lisp, Clojure), Scala

Logic programming

  • the desired result is declared as the answer to a question about a system of facts and rules
  • E.g. Prolog

Reactive programming

  • the desired result is declared with data streams and the propagation of change
  • E.g. Svelte, ReactiveX