Jump to content

Comparison of multi-paradigm programming languages: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Line 61: Line 61:
** [[Perl]] {{Citation needed|date=March 2007}}
** [[Perl]] {{Citation needed|date=March 2007}}
** [[Pliant]] {{Citation needed|date=March 2007}}
** [[Pliant]] {{Citation needed|date=March 2007}}
** [[Python (programming language)|Python]] <ref>[http://www-128.ibm.com/developerworks/library/l-prog.html Charming Python: Functional programming in Python, Part 1<!-- Bot generated title -->]</ref>
** [[Ruby (programming language)|Ruby]]
** [[Ruby (programming language)|Ruby]]
** [[Tcl]] with [[Incr Tcl|itcl]] or [[XOTcl]] extensions {{Citation needed|date=March 2007}}
** [[Tcl]] with [[Incr Tcl|itcl]] or [[XOTcl]] extensions {{Citation needed|date=March 2007}}

Revision as of 23:59, 5 May 2010

Programming languages can be grouped by the number and types of paradigms supported.

Paradigm summaries

A concise reference for the programming paradigms listed in this article.

Actor model
concurrent computation with "actors" that makes local decisions in response to the environment (capable of selfish or competitive behavior)
Constraint programming
relations between variables are expressed as constraints (or constraint networks), directing allowable solutions (uses constraint satisfaction or simplex algorithm)
Dataflow
forced recalculation of formulas when data values change (e.g. Spreadsheets)
Declarative programming
describes actions (e.g. HTML describes a page but not how to actually display it)
Functional programming
uses evaluation of mathematical functions and avoids state and mutable data
Imperative programming
explicit statements that change a program state
Logic programming
uses logical facts to create a model that can prove consistency, deduce further truths or answer questions about the model (e.g. Dogs are animals! Dogs are red! Are some animals red?)
Object-Oriented programming
uses classes and instances, inheritance, encapsulation and polymorphism
Parallel computing
simultaneous execution with the necessary communication and synchronization between processes/threads
Pipeline programming
no nested function calls, but a simple flow structures with easy to visualize/understand data flow through the program
Prototype-based programming
object-oriented programming that avoids classes and implements inheritance via the cloning of instances
Reflective programming
special case of metaprogramming (modification of programs as data by another program or ability to do part of the work in runtime instead of compile time) in which the program modifies or extends itself
Rule-based programming
a network of rules of thumb that comprise a knowledge base and can be used for expert systems and problem deduction & resolution
Visual programming language
manipulating program elements graphically rather than by specifying them textually (e.g. Simulink); also known as diagrammatic programming [1].

Two paradigm-languages

Three paradigm-languages

Four paradigm-languages

Five paradigm-languages

Eight paradigm-languages

Nine paradigm-languages

See also

References

  • Multiparadigm Design for C++, by Jim Coplien, 1998.