NOTE: Article in Progress

Different programming paradigmsn like Declarative Programming Procedural Programming Functional Programming Aspect-oriented Programming Object-oriented Programming Visual Programming.

Kuhn’s notion of paradigm14

Turing completeness and expressivity: turing complete languages are interchangeable14

Year of first release

paradigm based on mathematical theory or set of principles16

Keywords

Variables and control statements (sequence, choice, repitition)14

operators

loops

recursion

aggregation

Domain-specific language

students focus on creating domain specific languages15

Programming languages should be multi-paradigm16

pattern mining

functions/procedures/modules

using standard libraries, defining libraries, importing files, functions, classes

Abstraction

parallelism/concurrency/distributed

Various programming languages: ada, algol, c, c++, clojure, cobol, d, dart, erlang, fortran, go, groovy, haskell, html, java, javascript, lisp, lua, ML, objective-c, ocaml, pascal, perl, php, prolog, python, ruby, scala, scheme shell, smalltalk, wyvern

mathematics? category theory? functions?

Programming Languages

Programming Language Programming Paradigms
Ada Multi-paradigm, structured, statically typed, imperative, wide-spectrum, object-oriented
Algol Procedural, Imperative, Structured
C Imperative (procedural), Structured
C++ Multi-paradigm: Procedural, Functional, Object-oriented, Generic
Clojure Functional
Cobol procedural, imperative, object-oriented
D Multi-paradigm, Procedural, Object-oriented, Functional, Generic, Concurrent
Dart Multi-paradigm: scripting, object-oriented, imperative, reflective, functional
Erlang multi-paradigm: concurrent, functional
fortran multi-paradigm: structured, imperative (procedural, object-oriented), generic
go compiled, concurrent, imperative, structured
groovy Object-oriented, imperative, scripting
haskell functional, lazy/non-strict, modular
html
java Multi-paradigm: Object-oriented (class-based), structured, imperative, generic, reflective, concurrent
javascript Multi-paradigm: scripting, object-oriented (prototype-based), imperative, functional, event-driven
lisp Multi-paradigm: functional, procedural, reflective, meta
lua
ML
objective-c
ocaml
pascal
perl
php
prolog
python
ruby
scala
scheme shell
smalltalk
wyvern

References

  1. Programming Paradigm
  2. Dart
  3. Erlang
  4. Fortran
  5. Go
  6. Groovy
  7. Haskell
  8. Java
  9. JavaScript
  10. Lisp
  11. Lua
  12. IBM will offer free COBOL training to address overloaded unemployment systems
  13. Multi-Paradigm Languages
  14. Michaelson, Greg. “Programming Paradigms, Turing Completeness and Computational Thinking.” The Art, Science, and Engineering of Programming, vol. 4, no. 3, Feb. 2020, p. 4.
  15. Krishnamurthi, Shriram. “Teaching Programming Languages in a Post-Linnaean Age.” ACM SIGPLAN Notices, vol. 43, no. 11, Nov. 2008, pp. 81–83. November 2008
  16. Van Roy, Peter. Programming paradigms for dummies: what every programmer should know. In: Edited by Gérard Assayag and Andrew Gerzso, New computational paradigms for computer music, Éditions DELATOUR FRANCE : Le vallier 2009, p. 9-47, https://dial.uclouvain.be/pr/boreal/object/boreal:89561.