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
- Programming Paradigm
- Dart
- Erlang
- Fortran
- Go
- Groovy
- Haskell
- Java
- JavaScript
- Lisp
- Lua
- IBM will offer free COBOL training to address overloaded unemployment systems
- Multi-Paradigm Languages
- Michaelson, Greg. “Programming Paradigms, Turing Completeness and Computational Thinking.” The Art, Science, and Engineering of Programming, vol. 4, no. 3, Feb. 2020, p. 4.
- Krishnamurthi, Shriram. “Teaching Programming Languages in a Post-Linnaean Age.” ACM SIGPLAN Notices, vol. 43, no. 11, Nov. 2008, pp. 81–83. November 2008
- 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.