Multi Paradigm Languages Pdf
Total Page:16
File Type:pdf, Size:1020Kb
Multi paradigm languages pdf Continue Go to the main content of the Wikimedia article list This article may have contained original research. Please improve it by checking the claims made and adding links. Applications consisting only of original research must be removed. (August 2009) (Find out How and When to Delete This Message Pattern) Programming Paradigm Action Agent-Oriented Array-Oriented Automata-Based Parallel Computational Relative Data Programming Initiative Declarative (Contrast: Imperative) Functional Functional Logic Pure Functional Logic Stolen Response to Set Parallel Logic Functional Logic Inductive Logic Restriction Logic Parallel Limitation of Flow Flow Logic based on Reactive Ontology Differentiable Dynamic/scripting Event-driven Function-level (contrast: Value-level) Concatenative Generic Imperative (contrast: Declar Procedural Object-Oriented Polymorphic Intentional Language-Oriented Domain-Specific Literate Natural Programming Language Metaprogramming Automatic Inductive Programming Reflecting Attribute-Oriented Macro Pattern Unstructured (contrast: Structured) Array Nondeterministic Parallel Computing Process Oriented Probability-quantum-setting-theoretical stack-based Structured (contrast: Unstructured) Block-structured Con Object-oriented actor-based class parallel prototype-based division of problems: Aspect-oriented Role-oriented Recurrible Symbolic Value Level (contrast : Function-level) vte programming languages can be grouped by number and types of supported paradigms. The paradigm summarizes a brief reference to the programming paradigms listed in this article. Parallel programming - there are language designs for co-ord, they can include multi-stemming, support for distributed computing, messaging, shared resources (including general memory), or Futures Actor programming - simultaneous calculations with subjects, that make local decisions in response to the environment (capable of selfish or competitive behavior) Limited programming - the relationship between variables is expressed as limitations (or network restrictions), directing acceptable solutions (uses a limitation satisfaction or simple) Data Flow Programming - forced recalculation of formulas when changing data values (e.g. spreadsheets) Declarative programming - describes what it should calculate without specifying detailed state changes c.f. imperative programming (functional and logical programming are the main subgroups of declarative programming Distributed programming - to have support for several standalone computers that communicate through computer networks Functional programming - uses assessment of mathematical functions and avoids state and mutated data Of General programming - uses algorithms written in terms of to-be-specified-later types, which are then instantly instantly для конкретных типов, предусмотренных в качестве параметров Императив программирования - явные заявления, которые меняют состояние программы логики программирования - использует явную математическую логику для программирования Metaprogramming - написание программ, которые пишут или манипулируют другими программами (или сами) в качестве своих данных, или которые делают часть работы в момент компиляции, что в противном случае было бы сделано во время метапрограммирования шаблона - методы метапрограммирования, в которых шаблоны используются компилятором для генерации временного кода. который сливается компилятором с остальной частью исходный код, а затем компилируется Отражающее программирование - методы метапрограммирования, в которых программа изменяет или расширяет себя Объектно-ориентированное программирование - использует структуры данных, состоящие из полей данных и методов вместе с их взаимодействиями (объектами) для разработки программ класса - объектно-ориентированного программирования, в котором наследование достигается путем определения классов объектов , по сравнению с самими объектами Прототип на основе - объектно-ориентированного программирования, что позволяет избежать классов и реализует наследование через клонирование экземпляров трубопровода программирования - простое изменение синтаксиса, чтобы добавить синтаксис в гнездо функции вызовов на язык, первоначально разработанный без каких- либо Правил на основе программирования - сеть правил большого пальца, которые составляют базу знаний и могут быть использованы для экспертных систем и проблемного вычета и разрешения визуального программирования - манипулирование элементами программы графически, а не путем их also termed diagrammatic programming[1] Language overview 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 Ada[2][3][ 4][5][6] 5 Yes[a 1] No No No Yes No No Yes Yes No No Yes[a 2] No No No No ALF 2 No No No No No Yes No No No Yes No No No No No No AmigaE[citation needed] 2 No No No No No No No No Yes No No Yes[a 2] No No No No APL 3 No No No No No Yes No No Yes No No No No No No Array (multi-dimensional) BETA[citation needed] 3 No No No No No Yes No No Yes No No Yes[a 2] No No No No C++ 7 (15) Yes[7][8][9] Library[10] Library[11][12] Library[13][14] Library[15][16] Yes Yes[17] Yes[a 3] Yes Library[18][19] Library[20] Yes[a 2] Yes[21] No Library[22] Array (multi-dimensional; using STL) C# 6 (7) Yes No Library[a 4] No No Yes[a 5] No Yes Yes No Yes Yes[a 2] No No No reactive[a 6] ChucK[citation needed] 3 Yes No No No No No No No Yes No No Yes[a 2] No No No No Claire 2 No No No No No Yes No No No No No Yes[a 2] No No No No Clojure 5 Yes[23][24] No No Yes No Yes[25] Yes[26] No No No No Yes[28] Editor[29] No Multiple dispatch,[30] Agents[31] Common Lisp 5 Library[32] Library[33] Library[34] Yes[35] Yes[35] Да Да Да, Да Библиотека ( Да, Да Да (несколько диспетчерских, метод комбинаций) » 39 »a2» Библиотека »40» Нет библиотеки » Множественная диспетчерская служба, мета-OOP системы, язык является extensible через метапрограммирование. Curl 5 No No No No No Yes No Yes[a 3] Yes No Yes Yes[a 2] No No No No Curry 4 Yes Yes No No No Yes No No No Yes No No No No No No D (version 2.0)[43][44] 6 Yes[a 7] No No No No Yes Yes[45][a 3] Yes[a 3] Yes No No Yes[a 2] No No No No Dylan[citation needed] 3 No No No No No Yes No No No No Yes Yes[a 2] No No No No E 3 Yes No No No Yes No No No No No No Yes[a 2] No No No No ECMAScript[46][47] (ActionScript, E4X, JavaScript, JScript) 4 (5) partial (promises , native extensions)[a 8] No No Library[48][49][50] No Yes No No Yes No Yes Yes[a 9] Library[51][52] Editor[53] No reactive,[a 10][54] event driven[a 11][a 12] Embarcadero Delphi 3 No No No No No No No Yes[a 3] Yes No No Yes[a 2] No No No No Erlang 3 Yes No No Yes Yes Yes No No No No No No Yes No No No Elixir 4 Yes No No No Yes Yes Yes No No No No No Yes No No No Elm 6 Yes No Yes Yes No Yes No Yes No No No No Yes No No reactive F# 7 (8) Yes[a 7] No Library[a 4] Yes No Yes No Yes Yes No Yes Yes[a 2] No No No reactive[a 6] Fortran 4 (5) Yes No No No No Yes[a 13] No Yes[a 14] No No No Yes[a 2] No No No Array (multi-dimensional) Go 4 Yes No No No No No No No Yes No Yes No Yes No No No Haskell 8 (15) Yes Library[55] Library[56] Yes Library[57] Yes (lazy) Yes[58] Yes Yes Library[59] No Immutable Yes Yes Library[60] literate, reactive, dependent types (partial) Io 4 Yes[a 7] No No No No Yes No No Yes No No Yes[a 9] No No No No J[citation needed] 3 No No No No No Yes No No Yes No No Yes[a 2] No No No No Java 6 Yes Library[61] Library[62] No No Yes No Yes Yes No Yes Yes[a 2] No No No No Julia 9 (17) Yes Library[63] Library[64][65] Library[66] Yes Yes (eager) Yes Yes Yes Library[67] Yes Yes (multiple dispatch , не традиционный одиночный) Да Никакая библиотека »68»69» Многократная отправка, Array (многомерный); optionally lazy[70] and reactive (with libraries) Kotlin 8 Yes No No No No Yes Yes Yes Yes No Yes Yes Yes No No No LabVIEW 4 Yes No Yes No No No No No No No No Yes No Yes No No Lava 2 No No No No No No No No No No No Yes[a 2] No Yes No 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[a 2] No No Yes No Lua[citation needed] 3 No No No No No Yes No No Yes No No Yes[a 9] No No No No MATLAB 6 (10) Toolbox[71] Toolbox[72] Yes[73] No Toolbox[74] No Yes[75] Yes[76] No No Yes[77] Yes[78] No Yes[79] No Array (multi- dimensional) Nemerle 7 Yes No No No No Yes Yes Yes Yes No Yes Yes[a 2] No No No No Object Pascal 4 Yes No No No No Yes No No Yes No No Yes[a 2] No No No No OCaml 4 No No No No No Yes No Yes Yes No No Yes[a 2] No No No No Oz 11 Yes Yes Yes Yes Yes Yes No No Yes Yes No Yes[a 2] No Yes No Perl[citation needed] 8 (9) (9) Library[81] Yes[82] No No Yes Yes No Yes No Yes[a 2] Yes[a 2] Yes No No No PHP[83][84][85] 4 No No No No No Yes No No Yes No Yes Yes[a 2] No No No No Poplog 3 No No No No No Yes No No Yes Yes No No No No No No Prograph 3 No No Yes No No No No No No No No Yes[a 2] No Yes No No Python 5 (10) Library[86][87] Library[88] No No Library[89] Partial Yes[90][91] Yes[92][93] Yes Library[94] Yes Yes[a 2] No Editor[95] No structured R 4 No No No No No Yes No No Yes No Yes Yes Yes[96] No No Array (multi-dimensional) Racket 6 Yes[97] No No No No Yes Yes No Yes Yes Yes Yes No No No No Raku 10 Yes[98] Yes[99] Yes[100] Нет Библиотеки, Да Да, Да, Да, Да, Нет Да, Да, Да, Да, Да, нет, нет, нет нескольких диспетчеров, ленивых списков, реактивных.