All Topics  
Multi-paradigm programming language

 

   Email Print
   Bookmark   Link






 

Multi-paradigm programming language



 
 
A multi-paradigm programming language is a programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
 that supports more than one programming paradigm
Programming paradigm

A programming paradigm is a fundamental style of computer programming. . Paradigms differ in the concepts and abstractions used to represent the elements of a program and the steps that compose a computation ....
. As Lead designer Tim Budd holds it: The idea of a multiparadigm language is to provide a framework in which programmers can work in a variety of styles, freely intermixing constructs from different paradigms. The design goal of such languages is to allow programmers to use the best tool for a job, admitting that no one paradigm solves all problems in the easiest or most efficient way.

An example is Oz
Oz (programming language)

Oz is a multiparadigm programming language, developed in the Programming Systems Lab at Saarland University.Oz was first designed by Gert Smolka and his students in 1991....
, which has subsets that are a logic language
Logic programming

Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy 's [1958] Advice taker proposal, logic is used as a purely Declarative programming language representation language, and a automated theorem proving o...
 (Oz descends from logic programming), a functional language
Functional programming

In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
, an object-oriented language
Object-oriented programming language

An object-oriented programming language is one that allows or encourages, to some degree, object-oriented programming techniques such as Information hiding, Inheritance , module , and Polymorphism ....
, a dataflow concurrent language
Dataflow

Dataflow is a term used in computing, and may have various shades of meaning. It is closely related to message passing....
, and more.






Discussion
Ask a question about 'Multi-paradigm programming language'
Start a new discussion about 'Multi-paradigm programming language'
Answer questions from other users
Full Discussion Forum



Encyclopedia


A multi-paradigm programming language is a programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
 that supports more than one programming paradigm
Programming paradigm

A programming paradigm is a fundamental style of computer programming. . Paradigms differ in the concepts and abstractions used to represent the elements of a program and the steps that compose a computation ....
. As Lead designer Tim Budd holds it: The idea of a multiparadigm language is to provide a framework in which programmers can work in a variety of styles, freely intermixing constructs from different paradigms. The design goal of such languages is to allow programmers to use the best tool for a job, admitting that no one paradigm solves all problems in the easiest or most efficient way.

An example is Oz
Oz (programming language)

Oz is a multiparadigm programming language, developed in the Programming Systems Lab at Saarland University.Oz was first designed by Gert Smolka and his students in 1991....
, which has subsets that are a logic language
Logic programming

Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy 's [1958] Advice taker proposal, logic is used as a purely Declarative programming language representation language, and a automated theorem proving o...
 (Oz descends from logic programming), a functional language
Functional programming

In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
, an object-oriented language
Object-oriented programming language

An object-oriented programming language is one that allows or encourages, to some degree, object-oriented programming techniques such as Information hiding, Inheritance , module , and Polymorphism ....
, a dataflow concurrent language
Dataflow

Dataflow is a term used in computing, and may have various shades of meaning. It is closely related to message passing....
, and more. Oz was designed over a ten-year period to combine in a harmonious way concepts that are traditionally associated with different programming paradigms.

Multiparadigm languages


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.
  • Dataflow
    Dataflow

    Dataflow is a term used in computing, and may have various shades of meaning. It is closely related to message passing....
     - forced recalculation of formulas when data values change (e.g. Spreadsheet
    Spreadsheet

    A spreadsheet is a computer application that simulates a paper worksheet. It displays multiple cells that together make up a grid consisting of rows and columns, each cell containing either alphanumeric text or numeric values....
    s)
  • Visual programming language
    Visual programming language

    A visual programming language is any programming language that lets users create computer program by manipulating program elements graphically rather than by specifying them textually....
     - manipulating program elements graphically rather than by specifying them textually (e.g. Simulink
    Simulink

    Simulink, developed by The MathWorks, is a commercial tool for modeling, simulating and analyzing multidomain dynamic systems. Its primary interface is a visual modeling and a customizable set of block library ....
    )
  • Declarative programming
    Declarative programming

    In computer science, declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow....
     - describes actions (e.g. HTML
    HTML

    HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '...
     describe a page but not how to actually display it)
  • Imperative programming
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
     - explicit statements that change a program state
  • Functional programming
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
     - uses evaluation of mathematical functions and avoids state and mutable data
  • Object-Oriented programming
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     - uses classes
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
     and instances, inheritance
    Inheritance (computer science)

    In object-oriented programming, inheritance is a way to form new class es using classes that have already been defined. The inheritance concept was invented in 1967 for Simula....
    , encapsulation and polymorphism
    Polymorphism in object-oriented programming

    In simple terms, polymorphism is the ability of one type, A, to appear as and be used like another type, B. In strongly typed languages, this usually means that type A somehow derives from type B, or type A implements an interface that represents type B....
  • Prototype-based programming
    Prototype-based programming

    Prototype-based programming is a style of object-oriented programming in which class es are not present, and behavior reuse is performed via a process of cloning existing object s that serve as prototypes....
     - object-oriented programming
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     that avoids classes and implements inheritance via the cloning of instances
  • Parallel computing
    Concurrent computing

    Concurrent computing is a form of computing in which computer program are designed as collections of interacting computational processes that may be executed in Parallel computing....
     - simultaneous execution with the necessary communication and synchronization between processes/threads
  • Actor model
    Actor model

    In computer science, the Actor model is a mathematical model of concurrent computation that treats "actors" as the universal primitives of concurrent digital computation: in response to a message that it receives, an actor can make local decisions, create more actors, send more messages, and determine how to respond to the next message receiv...
     - concurrent computation with "actors" that makes local decisions in response to the environment (capable of selfish or competitive behavior)
  • Pipeline programming
    Pipeline programming

    When a programming language is originally designed without any syntax to nest function calls, pipeline programming is a simple syntax change to add it....
     - no nested function calls, but a simple flow structures with easy to visualize/understand data flow through the program
  • Constraint programming
    Constraint programming

    Constraint programming is a programming paradigm where relations between variables are stated in the form of constraints. Constraints differ from the common primitives of imperative programming languages in that they do not specify a step or sequence of steps to execute, but rather the properties of a solution to be found....
     - relations between variables are expressed as constraints (or constraint networks), directing allowable solutions (uses constraint satisfaction or simplex algorithm
    Simplex algorithm

    In mathematical optimization , the simplex algorithm, created by the United States mathematician George Dantzig in 1947, is a popular algorithm for numerical analysis solution of the linear programming problem....
    )
  • 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
  • Logic programming
    Logic programming

    Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy 's [1958] Advice taker proposal, logic is used as a purely Declarative programming language representation language, and a automated theorem proving o...
     - 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?)
  • Reflective programming - special case of metaprogramming
    Metaprogramming

    Metaprogramming is the writing of computer programs that write or manipulate other programs as their data, or that do part of the work at runtime that would otherwise be done at compile time....
     (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


Two paradigms


  • dataflow, visual
    Visual programming language

    A visual programming language is any programming language that lets users create computer program by manipulating program elements graphically rather than by specifying them textually....
    • LabVIEW
      LabVIEW

      LabVIEW is a platform and development environment for a visual programming language from National Instruments.The graphical language is named "G"....
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    • APL
      APL programming language

      APL is an array programming language based on a notation invented in 1957 by Kenneth E. Iverson while at Harvard University. It originated as an attempt to provide consistent notation for the teaching and analysis of topics related to the application of computers....
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , logic
    Logic programming

    Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy 's [1958] Advice taker proposal, logic is used as a purely Declarative programming language representation language, and a automated theorem proving o...
    • ALF
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    )
    • Dylan
      Dylan programming language

      The Dylan programming language is a multi-paradigm language that includes support for Functional programming and Object-oriented programming programming, and is dynamic programming language and Reflection while providing a programming model designed to support efficient machine code generation, including fine-grained control over dynamic and...
       
    • Sather
      Sather

      Sather is an object-oriented programming language. It originated circa 1990 at the International Computer Science Institute at the University of California, Berkeley, developed by an international team led by Steve Omohundro....
       
    • Claire
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , visual
    Visual programming language

    A visual programming language is any programming language that lets users create computer program by manipulating program elements graphically rather than by specifying them textually....
    • Spreadsheet
      Spreadsheet

      A spreadsheet is a computer application that simulates a paper worksheet. It displays multiple cells that together make up a grid consisting of rows and columns, each cell containing either alphanumeric text or numeric values....
      s
  • imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    )
    • AmigaE
      AmigaE

      Amiga E, or very often simply E, is a programming language created by Wouter van Oortmerssen on the Amiga. He has since moved on to develop the SHEEP programming language for the new AmigaDE platform and the CryScript language used during the development of the popular computer game Far Cry....
       
    • PHP
      PHP

      PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
    • Simula
      Simula

      Simula is a name for two programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard....
       
  • object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    ), (prototype-based
    Prototype-based programming

    Prototype-based programming is a style of object-oriented programming in which class es are not present, and behavior reuse is performed via a process of cloning existing object s that serve as prototypes....
    )
    • Metaobject
      Metaobject

      In computer science, a metaobject or meta-object is any entity that manipulates, creates, describes, or implements other object s. The object that the metaobject is about is called the base object....
       protocols
  • object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    ), visual
    Visual programming language

    A visual programming language is any programming language that lets users create computer program by manipulating program elements graphically rather than by specifying them textually....
    • Lava


Three paradigms

  • imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    ,visual
    Visual programming language

    A visual programming language is any programming language that lets users create computer program by manipulating program elements graphically rather than by specifying them textually....
    ,object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
    • PointDragon
      PointDragon

      PointDragon is a commercially available general-purpose, web-based, code-less visual programming environment for the development of database-backed web-based Enterprise Software....
  • concurrent, dataflow
    Dataflow

    Dataflow is a term used in computing, and may have various shades of meaning. It is closely related to message passing....
    , functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    • SISAL
      SISAL

      SISAL is a general-purpose single assignment functional programming language programming language with strict semantics, implicit parallelism, and efficient array handling....
  • concurrent, functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , distributed
    • Erlang
      Erlang programming language

      Erlang is a general-purpose concurrent computing programming language andruntime system. The sequential subset of Erlang is a functional language, with strict evaluation, single assignment, and Type system....
  • concurrent, functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , logic
    Logic programming

    Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy 's [1958] Advice taker proposal, logic is used as a purely Declarative programming language representation language, and a automated theorem proving o...
    • Curry
      Curry programming language

      Curry is an experimental functional programming Logic programming programming language, based on the Haskell language. It merges elements of functional and logic programming, including constraint programming integration....
  • concurrent, imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    )
    • ChucK
      ChucK

      ChucK is a concurrent, strongly-timed audio programming language for real-time synthesis, composition, and performance, which runs on Mac OS X, Linux, and Microsoft Windows....
       
  • dataflow
    Dataflow

    Dataflow is a term used in computing, and may have various shades of meaning. It is closely related to message passing....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    ), visual
    Visual programming language

    A visual programming language is any programming language that lets users create computer program by manipulating program elements graphically rather than by specifying them textually....
    • Prograph
      Prograph

      Prograph is a Visual programming language, Object-oriented programming, dataflow programming, Multi-paradigm programming language programming language that uses iconic symbols to represent actions to be taken on data....
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , logic
    Logic programming

    Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy 's [1958] Advice taker proposal, logic is used as a purely Declarative programming language representation language, and a automated theorem proving o...
    • Poplog
      Poplog

      Poplog is a powerful multi-Programming language, Multi-paradigm programming language, Reflection , dynamic compilation Computer programming system platform, originally created in the United Kingdom for teaching and research in Artificial Intelligence at the University of Sussex....
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    )
    • BETA
      BETA

      BETA is a pure object-oriented language originating within the "Scandinavian School" in object-orientation where the first object-oriented language Simula programming language was developed....
       
    • F#
    • J
    • Perl
      Perl

      In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
       
    • Pliant
      Pliant

      HistoryIn computer software programming languages history, Pliant is the first attempt to connect C and Lisp programming language branches....
       
    • Python
      Python (programming language)

      Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
       
    • Ruby
      Ruby (programming language)

      Ruby is a dynamic programming language, reflection , general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features....
    • Tcl
      Tcl

      Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration"?according to the author?with programmers devising their own languages intended to be embedded into applications, Tcl quickly gained wide acceptance on its own and is generally thought to be easy to learn, but powerful in competent hands....
       with itcl or XOTcl
      XOTcl

      XOTcl is an object-oriented extension for the Tcl created by G. Neumann and U. Zdun. It supports metaclasses. Class and Method definitions are completely dynamic....
       extensions
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (prototype-based
    Prototype-based programming

    Prototype-based programming is a style of object-oriented programming in which class es are not present, and behavior reuse is performed via a process of cloning existing object s that serve as prototypes....
    )
    • ECMAScript
      ECMAScript

      ECMAScript is a scripting language, standardized by Ecma International in the ECMA-262 Specification . The language is widely used on the World Wide Web, and is often confused with JavaScript or JScript, the two major Programming language dialect from which ECMAScript was standardized....
       
      • ActionScript
        ActionScript

        ActionScript is a scripting language based on ECMAScript. ActionScript is used primarily for the development of websites and software using the Adobe Flash Player platform , but is also used in some database applications , and in basic robotics, as with the Make Controller Kit....
      • DMDScript
      • E4X
        E4X

        ECMAScript for XML is a programming language extension that adds native XML support to ECMAScript . The goal is to provide an alternative to Document Object Model interfaces that uses a simpler syntax for accessing XML documents....
      • JavaScript
        JavaScript

        JavaScript is a scripting language widely used for client-side web development. It was the originating Programming language dialect of the ECMAScript standard....
      • JScript
        JScript

        JScript is the Microsoft dialect of the ECMAScript scripting language specification.JavaScript , JScript, and ECMAScript are very similar languages....
    • Lua
      Lua programming language

      In computing, Lua is a lightweight languages, Reflection , imperative programming and functional programming programming language, designed as a scripting language with extension language semantics as a primary goal....
       
    • Tcl
      Tcl

      Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration"?according to the author?with programmers devising their own languages intended to be embedded into applications, Tcl quickly gained wide acceptance on its own and is generally thought to be easy to learn, but powerful in competent hands....
       with Snit
      Snit

      Snit is an object-oriented extension to the Tcl programming language. Snit is a recursive acronym that stands for "Snit's Not Incr Tcl." Snit is a pure Tcl Object and megawidget system....
       extension
  • generic
    Generic programming

    Generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters and was pioneered by Ada which appeared in 1983....
     (template metaprogramming
    Template metaprogramming

    Template metaprogramming is a metaprogramming technique in which Generic programming are used by a compiler to generate temporary source code, which is merged by the compiler with the rest of the source code and then compiled....
    ), imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    )
    • C++
      C++

      C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
    • D


Four paradigms

  • imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , generic
    Generic programming

    Generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters and was pioneered by Ada which appeared in 1983....
    , reflective
    Reflection (computer science)

    In computer science, reflection is the process by which a computer program can observe and modify its own structure and behaviour. The programming paradigm driven by reflection is called reflective programming....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    )
    • Java
      Java (programming language)

      Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , generic
    Generic programming

    Generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters and was pioneered by Ada which appeared in 1983....
     (template metaprogramming
    Template metaprogramming

    Template metaprogramming is a metaprogramming technique in which Generic programming are used by a compiler to generate temporary source code, which is merged by the compiler with the rest of the source code and then compiled....
    ), object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    )
    • Objective Caml
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , concurrent (Actor model
    Actor model

    In computer science, the Actor model is a mathematical model of concurrent computation that treats "actors" as the universal primitives of concurrent digital computation: in response to a message that it receives, an actor can make local decisions, create more actors, send more messages, and determine how to respond to the next message receiv...
    ), object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    )
    • Scala
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , concurrent (Actor model
    Actor model

    In computer science, the Actor model is a mathematical model of concurrent computation that treats "actors" as the universal primitives of concurrent digital computation: in response to a message that it receives, an actor can make local decisions, create more actors, send more messages, and determine how to respond to the next message receiv...
    ), object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (prototype-based
    Prototype-based programming

    Prototype-based programming is a style of object-oriented programming in which class es are not present, and behavior reuse is performed via a process of cloning existing object s that serve as prototypes....
    )
    • Io
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , logic
    Logic programming

    Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy 's [1958] Advice taker proposal, logic is used as a purely Declarative programming language representation language, and a automated theorem proving o...
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    )
    • Leda
      Leda programming language

      Leda is a Multi-paradigm programming language programming language whose goal is to successfully mix imperative programming, object oriented programming, functional programming, and logic programming Computer programming features into one language....
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (prototype-based
    Prototype-based programming

    Prototype-based programming is a style of object-oriented programming in which class es are not present, and behavior reuse is performed via a process of cloning existing object s that serve as prototypes....
    ), dialected
    Dialecting

    Dialects are Domain-specific programming language sub-languages of a programming language or a data exchange language. A language supporting this paradigm encourages users to create new dialects for specific problematic domains....
    • REBOL
      REBOL

      REBOL, the Relative Expression Based Object Language , is a data exchange language and programming languageREBOL Technologies, ....
  • imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , logic
    Logic programming

    Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy 's [1958] Advice taker proposal, logic is used as a purely Declarative programming language representation language, and a automated theorem proving o...
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    ), rule-based
    • ROOP
      ROOP programming language

      ROOP is a Multi-paradigm programming language programming language targeted at Artificial intelligence applications created at the Chengdu University of China....
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    ), reflective
    • Common Lisp
      Common Lisp

      Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in American National Standards Institute standard document Information Technology - Programming Language - Common Lisp, formerly X3.226-1994 ....
        (although there are other paradigms implemented as libraries)


Five paradigms

  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
     (only lambda
    Lambda calculus

    In mathematical logic and computer science, lambda calculus, also written as ?-calculus, is a formal system designed to investigate function definition, function application and recursion....
     support), imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , generic
    Generic programming

    Generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters and was pioneered by Ada which appeared in 1983....
    , reflective
    Reflection (computer science)

    In computer science, reflection is the process by which a computer program can observe and modify its own structure and behaviour. The programming paradigm driven by reflection is called reflective programming....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    )
    • C#
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , generic
    Generic programming

    Generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters and was pioneered by Ada which appeared in 1983....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    ), metaprogramming
    Metaprogramming

    Metaprogramming is the writing of computer programs that write or manipulate other programs as their data, or that do part of the work at runtime that would otherwise be done at compile time....
    • Nemerle
      Nemerle

      Nemerle is a high level language static typing programming language for the Microsoft .NET platform. It offers functional programming, object-oriented and imperative programming features....
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    ), metaprogramming
    Metaprogramming

    Metaprogramming is the writing of computer programs that write or manipulate other programs as their data, or that do part of the work at runtime that would otherwise be done at compile time....
    , reflective
    • Falcon programming language
      Falcon (programming language)

      The Falcon Programming Language, with Falcon P.L., Falconpl or Falcon being short names, is an open source, multi-paradigm programming language programming language....
  • concurrent (rendezvous and monitor-like based), distributed, generic
    Generic programming

    Generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters and was pioneered by Ada which appeared in 1983....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    )
    • Ada
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , pipeline
    Pipeline programming

    When a programming language is originally designed without any syntax to nest function calls, pipeline programming is a simple syntax change to add it....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    ), reflective
    • Windows PowerShell
      Windows PowerShell

      Windows PowerShell is an extensible command line interface shell and associated scripting language from Microsoft. It was released in 2006 and is currently available for Windows XP SP2/SP3, Windows Server 2003, Windows Vista and is included in Windows Server 2008 as well as Windows 7 as an optional feature....
  • functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
    , generic
    Generic programming

    Generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters and was pioneered by Ada which appeared in 1983....
     (template metaprogramming
    Template metaprogramming

    Template metaprogramming is a metaprogramming technique in which Generic programming are used by a compiler to generate temporary source code, which is merged by the compiler with the rest of the source code and then compiled....
    ), imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    ), reflective
    • Curl


Eight paradigms


  • concurrent, constraint
    Constraint programming

    Constraint programming is a programming paradigm where relations between variables are stated in the form of constraints. Constraints differ from the common primitives of imperative programming languages in that they do not specify a step or sequence of steps to execute, but rather the properties of a solution to be found....
    , dataflow
    Dataflow

    Dataflow is a term used in computing, and may have various shades of meaning. It is closely related to message passing....
    , distributed, functional
    Functional programming

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
     (evaluation
    Evaluation strategy

    In computer science, an evaluation strategy is a set of rules for determining the evaluation of expression in a programming language. Emphasis is typically placed on subprogram or operators ? an evaluation strategy defines when and in what order the arguments to a function are evaluated, when they are substituted into the function, and wha...
    : eager
    Eager evaluation

    Eager evaluation or strict evaluation is the evaluation strategy in most traditional programming languages.In eager evaluation an Expression is evaluated as soon as it gets bound to a variable....
    , lazy
    Lazy evaluation

    In computer programming, lazy evaluation is the technique of delaying a computation until such time as the result of the computation is known to be needed....
    ), imperative
    Imperative programming

    In computer science, imperative programming is a programming paradigm that describes computation in terms of statement s that change a program state ....
    , logic
    Logic programming

    Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy 's [1958] Advice taker proposal, logic is used as a purely Declarative programming language representation language, and a automated theorem proving o...
    , object-oriented
    Object-oriented programming

    Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
     (class-based
    Class (computer science)

    In object-oriented programming, a class is a programming language construct that is used as a blueprint to create Object s. This blueprint includes Attribute s and Method s that the created objects all share....
    )
    • Oz
      • Mozart Programming System
        Mozart Programming System

        The Mozart Programming System is a multiplatform implementation of the Oz programming language developed by the Mozart Consortium. It excels in creating Distributed computing, Concurrent programming language applications, because it makes a network fully transparent....
         (a multiplatform Oz)


See also

  • Programming paradigm
    Programming paradigm

    A programming paradigm is a fundamental style of computer programming. . Paradigms differ in the concepts and abstractions used to represent the elements of a program and the steps that compose a computation ....
  • Categorical list of programming languages
    Categorical list of programming languages

    This is a list of programming languages grouped by category. Some languages are listed in multiple categories....
  • Domain-specific programming language
    Domain-specific programming language

    In software development, a domain-specific language is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique....
  • Domain-specific multimodeling
    Domain-specific multimodeling

    Domain-specific multimodeling is a software development paradigm where each view is made explicit as a separate domain-specific language .Succesful development of a modern enterprise system requires the convergence of multiple views....