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