stringtranslate.com

Сравнение многопарадигмальных языков программирования

Языки программирования можно сгруппировать по количеству и типам поддерживаемых парадигм .

Краткое изложение парадигмы

Краткий справочник по парадигмам программирования, перечисленным в этой статье.

Обзор языка

Смотрите также

Примечания

  1. ^ рандеву и основанный на мониторе
  2. ^ abcdefghijklmnopqrstu vwxyz aa ab ac ad ae af ag ah ai на основе классов
  3. ^ abcde шаблон метапрограммирования
  4. ^ abc с использованием TPL Dataflow
  5. ^ только поддержка лямбда (ленивое функциональное программирование)
  6. ^ abc с использованием реактивных расширений (Rx)
  7. ^ множественная отправка, комбинации методов
  8. ^ abcde актерское программирование
  9. ^ обещания, собственные расширения
  10. ^ с использованием кластерного модуля Node.js или метода child_process.fork, веб-воркеров в браузере и т. д.
  11. ^ abcd На основе прототипа
  12. ^ с использованием реактивных расширений (RxJS)
  13. ^ в Node.js через их модуль событий
  14. ^ в браузерах через их собственный API EventTarget
  15. ^ abc чисто функциональный
  16. ^ параметризованные классы
  17. ^ неизменный
  18. ^ множественная отправка, а не традиционная одиночная
  19. ^ Акка Архивировано 2013-01-19 в Wayback Machine

Цитаты

  1. ^ Брэгг, SD; Дрискилл, CG (20–22 сентября 1994 г.). «Диаграммно-графические языки программирования и DoD-STD-2167A». Труды AUTOTESTCON '94 (IEEEXplore) . Институт инженеров по электротехнике и электронике (IEEE). стр. 211–220. doi :10.1109/AUTEST.1994.381508. ISBN 978-0-7803-1910-3. S2CID  62509261.
  2. ^ Справочное руководство по языку программирования Ada, ISO/IEC 8652:2005(E) Ред. 3, Раздел 9: Задачи и синхронизация
  3. ^ Справочное руководство по языку программирования Ada, ISO/IEC 8652:2005(E) Ред. 3 Приложение E: Распределенные системы
  4. ^ Справочное руководство по языку программирования Ada, ISO/IEC 8652:2005(E) Ред. 3, Раздел 12: Общие единицы измерения
  5. ^ Справочное руководство по языку программирования Ada, ISO/IEC 8652:2005(E) Ред. 3, Раздел 6: Подпрограммы
  6. ^ Справочное руководство по языку программирования Ada, ISO/IEC 8652:2005(E) Ред. 3, 3.9 Тегированные типы и расширения типов
  7. ^ Поддержка темы
  8. ^ Поддержка атомов
  9. ^ Модель памяти
  10. ^ Гекод
  11. ^ СистемаC
  12. ^ Boost.Iostreams
  13. ^ Булинк
  14. ^ "AraRat" (PDF) . Архивировано из оригинала (PDF) 2019-08-19 . Получено 2019-09-15 .
  15. ^ OpenMPI
  16. ^ Повышение.MPI
  17. ^ Повышение.MPL
  18. ^ ЛК++
  19. ^ Кастор Архивировано 25.01.2013 на Wayback Machine
  20. ^ Библиотека Reflect
  21. ^ N3534
  22. ^ Boost.Spirit
  23. ^ Clojure — Параллельное программирование
  24. ^ Clojure - ядро.асинхронный
  25. ^ Clojure — Функциональное программирование
  26. ^ Clojure - Макросы
  27. ^ Clojure - core.logic
  28. ^ Clojure - Руководство по потоковой обработке макросов
  29. ^ "Световой стол". 2019-04-08.
  30. ^ Мультиметоды и иерархии
  31. ^ Агенты и асинхронные действия
  32. ^ [1] многие парадигмы параллелизма реализованы как расширения языка
  33. ^ [2] программирование ограничений внутри CL через расширения
  34. ^ [3] расширение потока данных
  35. ^ [4] путем создания DSL с использованием встроенного метапрограммирования; также см. примечание о функциональных, ограничительных и логических парадигмах, которые являются частью декларативного
  36. ^ [5] MPI и т.д. через языковые расширения
  37. ^ метапрограммирование шаблонов с использованием макросов (см. C++)
  38. ^ [6] [7] [8] Пролог реализован как расширение языка
  39. ^ Common Lisp Object System см. статью Википедии о CLOS, Common Lisp Object System.
  40. ^ реализовано пользователем с помощью короткого макроса, пример реализации
  41. ^ - Визуальный инструмент программирования на основе Common Lisp
  42. ^ [9] расширение программирования на основе правил
  43. ^ [10] Архивировано 26.04.2018 на Wayback Machine через протокол метаобъектов.
  44. ^ Таблица особенностей языка D
  45. ^ Фобос стандартный алгоритм
  46. ^ Миксины строк языка D
  47. ^ Little JavaScripter демонстрирует фундаментальную общность со Scheme, функциональным языком.
  48. ^ Объектно-ориентированное программирование в JavaScript. Архивировано 10 февраля 2019 г. на Wayback Machine. В статье дается обзор методов объектно-ориентированного программирования в JavaScript.
  49. ^ "React – библиотека JavaScript для создания пользовательских интерфейсов". 2019-04-08.
  50. ^ "TNG-Hooks". GitHub . 2019-04-08.
  51. ^ "Документация Lodash". 2019-04-08.
  52. ^ "мори". 2019-04-08.
  53. ^ "Световой стол". 2019-04-08.
  54. ^ "TNG-Hooks". GitHub . 2019-04-08.
  55. ^ "Встраивание Пролога". Haskell.org .
  56. ^ "Функциональное реактивное программирование". HaskellWiki .
  57. ^ Облако Хаскелл
  58. ^ "Шаблон Haskell". HaskellWiki .
  59. ^ "Logict: Монада логического программирования с возвратом". Haskell.org .
  60. ^ Коллмансбергер, Стив; Эрвиг, Мартин (30 мая 2006 г.). «Правила Haskell: встраивание систем правил в Haskell» (PDF) . Университет штата Орегон .
  61. ^ https://jcp.org/en/jsr/detail?id=331 JSR 331: API программирования ограничений
  62. ^ https://github.com/GoogleCloudPlatform/DataflowJavaSDK Google Cloud Platform Dataflow SDK
  63. ^ "JuliaOpt/JuMP.jl". GitHub . JuliaOpt. 11 февраля 2020 г. . Получено 12 февраля 2020 г. .
  64. ^ "GitHub - MikeInnes/DataFlow.jl". GitHub . 2019-01-15.
  65. ^ "GitHub - JuliaGizmos/Reactive.jl: Примитивы реактивного программирования для Julia". GitHub . 2018-12-28.
  66. ^ https://github.com/davidanthoff/Query.jl Запрос почти всего в julia
  67. ^ https://github.com/lilinjn/LilKanren.jl Коллекция реализаций Kanren в Julia
  68. ^ "GitHub - abeschneider/PEGParser.jl: PEG-парсер для Julia". GitHub . 2018-12-03.
  69. ^ "GitHub - gitfoxi/Parsimonious.jl: Генератор парсеров PEG для Julia". GitHub . 2017-08-03.
  70. ^ Ленивый https://github.com/MikeInnes/Lazy.jl
  71. ^ "Выполнять итерации цикла параллельно". mathworks.com . Получено 21 октября 2016 г. .
  72. ^ "Write Constraints". mathworks.com . Получено 21 октября 2016 г. .
  73. ^ "Начало работы с SimEvents". mathworks.com . Получено 21 октября 2016 г. .
  74. ^ "Выполнять итерации цикла параллельно". mathworks.com . Получено 21 октября 2016 г. .
  75. ^ "Выполнить выражение MATLAB в тексте - MATLAB eval". mathworks.com . Получено 21 октября 2016 г. .
  76. ^ "Определить класс объекта". mathworks.com . Получено 21 октября 2016 г. .
  77. ^ "Class Metadata". mathworks.com . Получено 21 октября 2016 г. .
  78. ^ "Объектно-ориентированное программирование". mathworks.com . Получено 21 октября 2016 г. .
  79. ^ "Simulink". mathworks.com . Получено 21 октября 2016 г. .
  80. ^ потоки на основе интерпретатора
  81. ^ Perl высшего порядка
  82. ^ Руководство по PHP, Глава 17. Функции
  83. ^ Руководство по PHP, Глава 19. Классы и объекты (PHP 5)
  84. ^ Руководство по PHP, Анонимные функции
  85. ^ "Параллельная обработка и многопроцессорная обработка в Python". Python Wiki . Получено 21 октября 2016 г.
  86. ^ "threading — Интерфейс потоков более высокого уровня". docs.python.org . Получено 21 октября 2016 г. .
  87. ^ "python-constraint". pypi.python.org . Получено 21 октября 2016 г. .
  88. ^ "DistributedProgramming". Python Wiki . Получено 21 октября 2016 г.
  89. ^ "Глава 9. Метапрограммирование". chimera.labs.oreilly.com . Архивировано из оригинала 23 октября 2016 . Получено 22 октября 2016 .
  90. ^ "Метапрограммирование". readthedocs.io . Получено 22 октября 2016 г. .
  91. ^ "PEP 443 – Single-dispatch generic functions". python.org . Получено 22 октября 2016 г. .
  92. ^ "PEP 484 – Type Hints". python.org . Получено 22 октября 2016 г. .
  93. ^ "PyDatalog" . Получено 22 октября 2016 г.
  94. ^ "Световой стол". 2019-04-08.
  95. ^ «Futureverse».
  96. ^ "будущие пакетные инструменты".
  97. ^ «Magrittr: Прямой оператор трубопровода для R». cran.r-project.org\access-date=13 июля 2017 г. 17 ноября 2020 г.
  98. ^ Руководство по Racket: Параллелизм и синхронизация
  99. ^ Руководство по розетке
  100. ^ FrTime: Язык для реактивных программ
  101. ^ Руководство по ракетке: Распределенные места
  102. ^ Ленивая ракетка
  103. ^ Каналы и другие механизмы
  104. ^ "Модуль решения проблем".
  105. ^ Оператор подачи
  106. ^ https://github.com/perl6/doc/issues/1744#issuecomment-360565196 Модуль Cro
  107. ^ "Метапрограммирование: что, почему и как". 2011-12-14.
  108. ^ https://perl6advent.wordpress.com/2009/12/18/day-18-roles/ Параметризованные роли
  109. ^ «Метаобъектный протокол (МОП)».
  110. ^ https://docs.perl6.org/language/classtut Классы и роли
  111. ^ "Руководство по макросам Rust". Rust . Получено 19 января 2015 г. .
  112. ^ "Руководство по плагинам компилятора Rust". Rust . Получено 19 января 2015 г. .
  113. ^ Ссылка на Rust §6.1.3.1
  114. ^ Обзор языка программирования Scala
  115. ^ Спецификация языка Scala
  116. ^ "Tcl Programming/Introduction". en.wikibooks.org . Получено 22 октября 2016 г. .
  117. ^ "TCLLIB - Стандартная библиотека Tcl: snitfaq". sourceforge.net . Получено 22 октября 2016 г. .
  118. ^ Заметки для экспертов по языкам программирования, Документация по языку Wolfram.
  119. ^ Внешние программы, Документация по языку Wolfram Language.

Ссылки

Смотрите также