A multiparadigm programming language is a programming language that supports more than one programming paradigm. A programming language is an Artificial language that can be used to write programs which control the behavior of a machine particularly a Computer. A programming paradigm is a fundamental style of Computer programming. As Leda 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. Leda is a multiparadigm Programming language whose goal is to successfully mix imperative, object-oriented, functional, and logic-based 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, which has subsets that are a logic language (Oz descends from logic programming), a functional language, an object-oriented language, a dataflow concurrent language, and more. Oz is a Multiparadigm programming language, developed in the Programming Systems Lab at Saarland University. Logic programming is in its broadest sense the use of mathematical logic for computer programming In Computer science, functional programming is a Programming paradigm that treats Computation as the evaluation of mathematical functions and An object-oriented Programming language (also called an OO language) is one that allows or encourages to some degree Object-oriented programming Dataflow is a term used in Computing, and may have various shades of meaning 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
This only serves for quick reference for programming paradigms listed here
- Dataflow - forced recalculation of formulas when data values change (e. Dataflow is a term used in Computing, and may have various shades of meaning g. Spreadsheets)
- Visual programming language - manipulating program elements graphically rather than by specifying them textually (e. A spreadsheet is a Computer application that simulates a paper worksheet A Visual programming language ( VPL) is any Programming language that lets users specify programs by manipulating program g. Simulink)
- Declarative programming - describes actions (e. Simulink, developed by The MathWorks, is a commercial tool for modeling simulating and analyzing multidomain dynamic systems In Computer science, Declarative programming is a Programming paradigm that attempts to minimize or eliminate side effects by describing what g. HTML describe a page but not how to actually display it)
- Imperative programming - explicit statements that change a program state
- Functional programming - uses evaluation of mathematical functions and avoids state and mutable data
- Object-Oriented programming - uses classes and instances, inheritance, encapsulation and polymorphism
- Prototype-based programming - object-oriented programming that avoids classes and implements inheritance via the cloning of instances
- Parallel computing - simultaneous execution with the necessary communication and synchronization between processes/threads
- Actor model - concurrent computation with "actors" that makes local decisions in response to the environment (capable of selfish or competitive behaviour)
- pipeline programming - no nested function calls, but a simple flow structures with easy to visualize/understand data flow through the program
- constraint programming - relations between variables are expressed as constraints (or constraint networks), directing allowable solutions (uses constraint satisfaction or simplex algorithm)
- 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 - uses logical facts to create a model that can prove consistency, deduce further truths or answer questions about the model (e. HTML, an initialism of HyperText Markup Language, is the predominant Markup language for Web pages It provides a means to describe the structure In Computer science, imperative programming is a Programming paradigm that describes computation in terms of statements that change a program state In Computer science, functional programming is a Programming paradigm that treats Computation as the evaluation of mathematical functions and Object-oriented programming (OOP is a Programming paradigm that uses " objects " and their interactions to design applications and computer programs Prototype-based programming is a style of Object-oriented programming in which classes are not present and behavior reuse (known as inheritance in class-based Object-oriented programming (OOP is a Programming paradigm that uses " objects " and their interactions to design applications and computer programs Concurrent computing is the concurrent (simultaneous execution of multiple interacting computational tasks In Computer science, the Actor model is a mathematical model of Concurrent computation that treats "actors" as the universal primitives of concurrent When a Programming language is originally designed without any syntax to nest function calls pipeline programming is a simple syntax change to add it Constraint programming is a Programming paradigm where relations between variables are stated in the form of constraints In mathematical optimization theory, the simplex algorithm, created by the American Mathematician George Dantzig in 1947, is a popular Logic programming is in its broadest sense the use of mathematical logic for computer programming Logic programming is in its broadest sense the use of mathematical logic for computer programming g. Dogs are animals! Dogs are red! Are some animals red?)
- reflective programming - special case of metaprogramming (modification of programs as data by another program or ability to do part of the work in compile time instead of running time) in which the program modifies or extends itself
Two paradigms
Three paradigms
- concurrent, dataflow, functional
- concurrent, functional, distributed
- concurrent, functional, logic
- concurrent, imperative, object-oriented (class-based)
- dataflow, object-oriented (class-based), visual
- functional, imperative, logic
- functional, imperative, object-oriented (class-based)
- functional, imperative, object-oriented (prototype-based)
- generic (template metaprogramming), imperative, object-oriented (class-based)
Four paradigms
- functional, imperative, generic (template metaprogramming), object-oriented (class-based)
- functional, imperative, generic (template metaprogramming), object-oriented (class-based)
- functional, imperative, concurrent (Actor model), object-oriented (class-based)
- functional, imperative, concurrent (Actor model), object-oriented (prototype-based)
- functional, imperative, logic, object-oriented (class-based)
- functional, imperative, object-oriented (prototype-based), dialected
- imperative, logic, object-oriented (class-based), rule-based
- functional, imperative, object-oriented (class-based), reflective
- Common Lisp (although there are other paradigms implemented as libraries)
Five paradigms
- concurrent (rendezvous and monitor-like based), distributed, generic, imperative, object-oriented (class-based)
- functional, imperative, pipeline, object-oriented (class-based), reflective
- functional, generic (template metaprogramming), imperative, object-oriented (class-based), reflective
Eight paradigms
- concurrent, constraint, dataflow, distributed, functional (evaluation: eager, lazy), imperative, logic, object-oriented (class-based)
See also
References
- ^ PHP Manual, Chapter 17. Functions
- ^ PHP Manual, Chapter 19. Classes and Objects (PHP 5)
- ^ Philippsen, Michael (1995). In Computer science, reflection is the process by which a Computer program can observe and modify its own structure and behavior In Computer programming, dataflow programming implements Dataflow principles and architecture and models a program conceptually if not physically as a Directed A Visual programming language ( VPL) is any Programming language that lets users specify programs by manipulating program LabVIEW (short for Lab oratory V irtual I nstrumentation E ngineering W orkbench is a platform and development environment for a In Computer science, functional programming is a Programming paradigm that treats Computation as the evaluation of mathematical functions and In Computer science, imperative programming is a Programming paradigm that describes computation in terms of statements that change a program state Logic programming is in its broadest sense the use of mathematical logic for computer programming Algebraic Logic Functional programming language also known as ALF is a Programming language which combines functional and Logic programming techniques Object-oriented programming (OOP is a Programming paradigm that uses " objects " and their interactions to design applications and computer programs In Object-oriented programming, a class is a Programming language construct that is used as a blueprint to create objects This blueprint includes attributes The Dylan Programming language is a multi-paradigm language that includes support for functional Sather is an Object-oriented Programming language. It originated circa 1990 at the International Computer Science Institute at the University of California A spreadsheet is a Computer application that simulates a paper worksheet Amiga E, or very often simply E, is a Programming language created by Wouter van Oortmerssen on the Amiga. PHP is a computer Scripting language. Originally designed for producing Dynamic web pages it has evolved to include a Command line interface capability 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 Prototype-based programming is a style of Object-oriented programming in which classes are not present and behavior reuse (known as inheritance in class-based In Computer science, a metaobject or meta-object is any entity that manipulates creates describes or implements other objects The object that the Lava is an experimental visual Object-oriented, interpreter -based programming language with an associated programming environment Parallel computing is a form of computation in which many instructions are carried out simultaneously operating on the principle that large problems can often Dataflow is a term used in Computing, and may have various shades of meaning Sisal or sisal hemp is an Agave Agave sisalana that yields a stiff Fiber used in making Rope. Erlang is a general-purpose concurrent Programming language and Runtime system Curry is an experimental functional logic Programming language, based on the Haskell language ChucK is a concurrent strongly-timed audio Programming language for real-time synthesis composition and performance which runs on Mac OS X, Linux Prograph is a visual, object-oriented, dataflow, multiparadigm Programming language that uses iconic symbols to represent actions Poplog is a powerful multi- language, multiparadigm, reflective, incrementally compiled software development environment BETA is a pure Object-oriented language originating within the "Scandinavian School" in object-orientation where the first object-oriented language Simula F# (pronounced F Sharp) is a Multi-paradigm programming language, targeting the. Not to be confused with the J++ or J# programming languages The J programming language, developed in the early 1990s by NOTES FOR EDITORS "Perl" is not an acronym (read the "Name" section below The Pliant Programming language is based on a dynamic compiler, which makes it act like it is interpreted. Python is a general-purpose High-level programming language. Its design philosophy emphasizes programmer productivity and code readability Ruby is a dynamic, reflective, general purpose Object-oriented programming language that combines syntax inspired by Perl with Smalltalk Tcl (originally from "Tool Command Language" but nonetheless conventionally rendered as "Tcl" rather than "TCL" pronounced as " tickle " incr Tcl (the name is a pun on " C++ " and often abbreviated to "itcl" is a set of object-oriented extensions for the Tcl programming XOTcl is an Object-oriented extension for the Tool Command Language created by G Prototype-based programming is a style of Object-oriented programming in which classes are not present and behavior reuse (known as inheritance in class-based ECMAScript is a Scripting language, standardized by Ecma International in the ECMA-262 specification. ActionScript is a scripting language based on ECMAScript. ActionScript is used primarily for the development of websites and software using the Adobe Flash Player ECMAScript for XML ( E4X) is a programming language extension that adds native XML support to ECMAScript (which includes ActionScript, DMDScript JavaScript is a Scripting language most often used for Client-side web development JScript is the Microsoft dialect of the ECMAScript Scripting language specification In Computing, Lua (ˈluːa LOO-ah is a lightweight, reflective, imperative and procedural Programming language, Tcl (originally from "Tool Command Language" but nonetheless conventionally rendered as "Tcl" rather than "TCL" pronounced as " tickle " This article is about the Tcl object system For the Snit featured on YTV see The Zone. 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 Template metaprogramming is a Metaprogramming technique in which templates are used by a Compiler to generate temporary source code which is merged by C++ (" C Plus Plus " ˌsiːˌplʌsˈplʌs is a general-purpose Programming language. The D programming language, also known simply as D, is an object-oriented, imperative, multiparadigm System programming language C# (pronounced C Sharp is a Multi-paradigm Objective Caml ( OCaml) is the main implementation of the Caml Programming language, created by Xavier Leroy, Jérôme Vouillon In Computer science, the Actor model is a mathematical model of Concurrent computation that treats "actors" as the universal primitives of concurrent Scala ( Scalable Language) is a multi-paradigm Programming language designed to integrate features of Object-oriented programming and In Computer science, the Actor model is a mathematical model of Concurrent computation that treats "actors" as the universal primitives of concurrent Io is a pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1 Leda is a multiparadigm Programming language whose goal is to successfully mix imperative, object-oriented, functional, and logic-based Dialects are domain specific sub-languages of a Programming language or a Data exchange language. REBOL, the Relative Expression Based Object Language (pronounced) is a proprietary Closed source data exchange and programming language ROOP is a multiparadigm Programming language targeted at AI applications created at the Chengdu University of China Common Lisp, commonly abbreviated CL, is a dialect of the Lisp Programming language, published in ANSI standard document Information Parallel computing is a form of computation in which many instructions are carried out simultaneously operating on the principle that large problems can often Ada is a structured, Statically typed, imperative, and object-oriented high-level computer Programming language When a Programming language is originally designed without any syntax to nest function calls pipeline programming is a simple syntax change to add it In Computer science, reflection is the process by which a Computer program can observe and modify its own structure and behavior Windows PowerShell is an extensible command-line shell and associated Scripting language from Microsoft The Curl programming language is a reflective Object-oriented programming language designed for interactive Web content such as Rich Internet applications Constraint programming is a Programming paradigm where relations between variables are stated in the form of constraints Eager evaluation or strict evaluation is the Evaluation strategy in most traditional Programming languages In eager evaluation an expression In Computer programming, lazy evaluation (or delayed evaluation) is the technique of delaying a computation until such time as the result of the computation is Oz is a Multiparadigm programming language, developed in the Programming Systems Lab at Saarland University. The Mozart Programming System is a Multiplatform implementation of the Oz Programming language developed by the Mozart Consortium. In computing cross-platform (also known as multi-platform) is a term used to refer to Computer software or computing methods and concepts that are implemented A programming paradigm is a fundamental style of Computer programming. This is a list of Programming languages grouped by category Array languages CategoryArray programming languages|l1=CategoryArray programming The term domain-specific language ( DSL) has become popular in recent years in Software development to indicate a Programming language or Specification Service-oriented modeling is a Software development methodology that employs disciplines and a universal language to provide tactical and strategic solutions to enterprise Imperative Concurrent Object-Oriented Languages.
- ^ Charming Python: Functional programming in Python, Part 1
- ^ The Little JavaScripter demonstrates fundamental commonality with Scheme, a functional language.
- ^ Object Oriented Programming in JavaScript gives an overview of object-oriented programming techniques in JavaScript.
- ^ Martin Odersky et al, An Overview of the Scala Programming Language, 2nd Edition
- ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 9: Tasks and Synchronization
- ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 Annex E: Distributed Systems
- ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 12: Generic Units
- ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 6: Subprograms
- ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, 3.9 Tagged Types and Type Extensions
- Multiparadigm Design for C++, by Jim Coplien, 1998.
- Concepts, Techniques, and Models of Computer Programming, by Peter Van Roy and Seif Haridi, 2004.
© 2009 citizendia.org; parts available under the terms of GNU Free Documentation License, from http://en.wikipedia.org
network: | |