What is Multi-Paradigm Languages?
Multi-Paradigm Languages are languages that can use multiple Programming paradigm together. Many programming languages support Muli Pradigum programming, for example, C++ is both an imperative and an object-oriented language, Parlog is both a parallel and a logic programming language.
Concept of Multi-Paradigm programming?
The concept of multi-paradigm programming is very simple to understand, When a programming language use more than one programming paradigm it know as multi-paradigm language, and the concept of combining these paradigms are Multiparadigm programming.
In OOPs, programmers can think of a program as a collection of interacting objects, while in functional programming a program can be thought of as a sequence of stateless function evaluations. When programming computers or systems with many processors, process-oriented programming allows programmers to think about applications as sets of concurrent processes acting upon logically shared data structures
Some languages are designed to support one particular paradigm (Smalltalk supports object-oriented programming, Haskell supports functional programming), while other programming languages support multiple paradigms
Many programming paradigms are as well known for what techniques they forbid as for what they enable. For instance, pure functional programming disallows the use of Side effects while Structured programming disallows the use of the goto statement. Partly for this reason, new paradigms are often regarded as doctrinaire or overly rigid by those accustomed to earlier styles.
List of multi-paradigm programming languages
Language | Number of Paradigms | Concurrent | Constraints | Dataflow | Declarative | Distributed | Functional | Metaprogramming | Generic | Imperative | Logic | Reflection | Object-oriented | Pipelines | Visual | Rule-based | Other paradigms |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LabVIEW | 2 | No | No | Yes | No | No | No | No | No | No | No | No | No | No | Yes | No | No |
APL | 2 | No | No | No | No | No | Yes | No | No | Yes | No | No | No | No | No | No | No |
ALF | 2 | No | No | No | No | No | Yes | No | No | No | Yes | No | No | No | No | No | No |
Dylan | 2 | No | No | No | No | No | Yes | No | No | No | No | No | Yes | No | No | No | No |
Sather | 2 | No | No | No | No | No | Yes | No | No | No | No | No | Yes | No | No | No | No |
Claire | 2 | No | No | No | No | No | Yes | No | No | No | No | No | Yes | No | No | No | No |
Spreadsheets | 2 | No | No | No | No | No | Yes | No | No | No | No | No | No | No | Yes | No | No |
AmigaEneeded] | 2 | No | No | No | No | No | No | No | No | Yes | No | No | Yes | No | No | No | No |
Simula | 2 | No | No | No | No | No | No | No | No | Yes | No | No | Yes | No | No | No | No |
Metaobject protocols | 2 | No | No | No | No | No | No | No | No | No | No | No | Yesup> | No | No | No | No |
Lava | 2 | No | No | No | No | No | No | No | No | No | No | No | Yes | No | Yes | No | No |
PointDragon | 3 | No | No | No | No | No | No | No | No | Yes | No | No | Yes | No | Yes | No | No |
SISAL | 3 | Yes | No | Yes | No | No | Yes | No | No | No | No | No | No | No | No | No | No |
Erlang | 3 | Yes | No | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | No |
ChucK | 3 | Yes | No | No | No | No | No | No | No | Yes | No | No | Yes | No | No | No | No |
Prograph | 3 | No | No | Yes | No | No | No | No | No | No | No | No | Yes | No | Yes | No | No |
Poplog | 3 | No | No | No | No | No | Yes | No | No | Yes | Yes | No | No | No | No | No | No |
BETA | 3 | No | No | No | No | No | Yes | No | No | Yes | No | No | Yes | No | No | No | No |
J | 3 | No | No | No | No | No | Yes | No | No | Yes | No | No | Yes | No | No | No | No |
Perl | 3 | No | No | No | No | No | Yes | No | No | Yes | No | No | Yes | No | No | No | No |
Pliantneeded] | 3 | No | No | No | No | No | Yes | No | No | Yes | No | No | Yes | No | No | No | No |
Tcl with itcl or XOTcl extensions | 3 | No | No | No | No | No | Yes | No | No | Yes | No | No | Yes | No | No | No | No |
PHP | 3 | No | No | No | No | No | Yes | No | No | Yes | No | No | Yes | No | No | No | No |
ECMAScript (ActionScript, E4X, JavaScript, JScript) | 3 | No | No | No | No | No | Yes | No | No | Yes | No | No | Yes | No | No | No | No |
Lua | 3 | No | No | No | No | No | Yes | No | No | Yes | No | No | Yes | No | No | No | No |
Tcl with Snit extension | 3 | No | No | No | No | No | Yes | No | No | Yes | No | No | Yes | No | No | No | No |
C++ | 6 (13) | Yes | Libraryd> | Library | Library | Library | Yes | Yesd> | Yes | Yes | Library | Libraryd> | Yes | No | No | Libraryd> | No |
D (version 1.0) | 3 | No | No | No | No | No | No | No | Yes | Yes | No | No | Yes | No | No | No | No |
Embarcadero Delphi | 3 | No | No | No | No | No | No | No | Yes | Yes | No | No | Yes | No | No | No | No |
E | 3 | Yes | No | No | No | Yes | No | No | No | No | No | No | Yes | No | No | No | No |
Curry | 4 | Yes | Yes | No | No | No | Yes | No | No | No | Yes | No | No | No | No | No | No |
Java | 4 | Yes | No | No | No | No | No | No | Yes | Yes | No | Yes | Yes | No | No | No | No |
Python | 4 | No | No | No | No | No | No | No | No | Yes | No | Yes | Yes | No | No | No | procedural |
Ruby | 4 | No | No | No | No | No | Yes | No | No | Yes | No | Yes | Yes | No | No | No | No |
OCaml | 4 | No | No | No | No | No | Yes | No | Yes | Yes | No | No | Yes | No | No | No | No |
Leda | 4 | No | No | No | No | No | Yes | No | No | Yes | Yes | No | Yes | No | No | No | No |
ROOP | 4 | No | No | No | No | No | No | No | No | Yes | Yes | No | No | No | No | Yes | No |
Io | 4 | Yes | No | No | No | No | Yes | No | No | Yes | No | No | Yes | No | No | No | No |
REBOL | 4 | No | No | No | No | No | Yes | No | No | Yes | No | No | Yes | No | No | No | No |
Fortran | 5 | Yes | No | No | No | No | Yes | No | Yes | No | No | No | Yes | No | No | No | No |
Ada | 5 | Yes | No | No | No | Yes | No | No | Yes | Yes | No | No | Yes | No | No | No | No |
Windows PowerShell | 5 | No | No | No | No | No | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | No | No |
Curl | 5 | No | No | No | No | No | Yes | No | Yes | Yes | No | Yes | Yes | No | No | No | No |
Common Lisp (some other paradigms are implemented as libraries) | 5 | No | No | No | No | No | Yes | Yes | No | Yes | No | Yes | Yes | No | No | No | No |
Falcon | 5 | No | No | No | No | No | Yes | Yes | No | No | No | Yes | Yes | No | No | No | No |
D (version 2.0) | 5 | Yes | No | No | No | No | Yes | No | Yes | Yes | No | No | Yes | No | No | No | No |
Object Pascal | 5 | Yes | No | No | No | No | Yes | No | No | Yes | No | No | Yes | No | No | No | No |
Scala | 7 | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | No | No |
Nemerle | 7 | Yes | No | No | No | No | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | No | No |
C# | 7 | Yes | No | Library | No | No | Yes | No | Yes | Yes | No | Yes | Yes | No | No | No | reactive |
Visual Basic .NET | 7 | Yes | No | Library | No | No | Yes | No | Yes | Yes | No | Yes | Yes | No | No | No | reactive |
F# | 8 | Yes | No | Library | Yes | No | Yes | No | Yes | Yes | No | Yes | Yes | No | No | No | reactive |
Oz | 9 | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes | Yes | No | Yes | No | No | Yes | No |
LispWorks (version 6.0 with support for symmetric multi-processing, rules, logic (Prolog), CORBA) | 9 | Yes | No | No | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No | No | Yes | No |
Mathematica | 11 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No | Yes | No |