مقارنة لغات البرمجة متعددة النماذج

يمكن تصنيف لغات البرمجة حسب عدد وأنواع النماذج المدعومة.

ملخصات النماذج

مرجع موجز لنماذج البرمجة المدرجة في هذه المقالة.

  • البرمجة المتزامنة – تتضمن بنيات لغوية للتزامن، وقد تشمل هذه البنيات تعدد الخيوط، ودعم الحوسبة الموزعة، وتمرير الرسائل، والموارد المشتركة (بما في ذلك الذاكرة المشتركة)، أو المستقبلات.
    • برمجة الممثلين – الحوسبة المتزامنة مع ممثلين يتخذون قرارات محلية استجابةً للبيئة (قادرين على السلوك الأناني أو التنافسي)
  • البرمجة المقيدة – يتم التعبير عن العلاقات بين المتغيرات كقيود (أو شبكات قيود)، مما يوجه الحلول المسموح بها (يستخدم إرضاء القيود أو خوارزمية سيمبلكس ).
  • برمجة تدفق البيانات – إعادة حساب الصيغ إجبارياً عند تغيير قيم البيانات (مثل جداول البيانات )
  • البرمجة التصريحية - تصف ما يجب أن تقوم به العمليات الحسابية، دون تحديد تغييرات الحالة التفصيلية (انظر البرمجة الإجرائية) (البرمجة الوظيفية والمنطقية هما مجموعتان فرعيتان رئيسيتان من البرمجة التصريحية).
  • البرمجة الموزعة – تدعم أجهزة كمبيوتر متعددة مستقلة تتواصل عبر شبكات الكمبيوتر
  • البرمجة الوظيفية – تستخدم تقييم الدوال الرياضية وتتجنب البيانات ذات الحالة والبيانات القابلة للتغيير
  • البرمجة العامة – تستخدم خوارزميات مكتوبة بأنواع يتم تحديدها لاحقًا، ثم يتم إنشاء مثيلات لها حسب الحاجة لأنواع محددة يتم توفيرها كمعاملات.
  • البرمجة الإجرائية – عبارات صريحة تُغير حالة البرنامج
  • البرمجة المنطقية – تستخدم المنطق الرياضي الصريح في البرمجة
  • البرمجة الوصفية – كتابة برامج تكتب أو تعالج برامج أخرى (أو نفسها) كبيانات لها، أو تقوم بجزء من العمل في وقت الترجمة الذي كان سيتم تنفيذه في وقت التشغيل
    • البرمجة الوصفية باستخدام القوالب – أساليب البرمجة الوصفية التي يستخدم فيها المترجم قوالب لإنشاء شفرة مصدرية مؤقتة، والتي يقوم المترجم بدمجها مع بقية الشفرة المصدرية ثم يقوم بتجميعها.
    • البرمجة الانعكاسية – أساليب البرمجة الفوقية التي يقوم فيها البرنامج بتعديل نفسه أو توسيعه
  • البرمجة كائنية التوجه – تستخدم هياكل البيانات التي تتكون من حقول البيانات والأساليب بالإضافة إلى تفاعلاتها (الكائنات) لتصميم البرامج
  • برمجة خطوط الأنابيب – تغيير بسيط في بناء الجملة لإضافة بناء جملة إلى استدعاءات الدوال المتداخلة في لغة مصممة أصلاً بدون أي بناء جملة
  • البرمجة القائمة على القواعد - شبكة من القواعد العامة التي تشكل قاعدة معرفية ويمكن استخدامها لأنظمة الخبراء واستنتاج المشكلات وحلها
  • البرمجة المرئية - معالجة عناصر البرنامج بشكل رسومي بدلاً من تحديدها نصياً (مثل Simulink )؛ وتسمى أيضاً البرمجة التخطيطية [ 1 ]

نظرة عامة على اللغة

انظر أيضاً

ملحوظات

  1. نقطة التقاء وشاشة عرض
  2. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 قائم على الفئات
  3. 1 2 3 4 5 قالب البرمجة الفوقية
  4. 1 2 3 باستخدام TPL Dataflow
  5. دعم لامدا فقط(البرمجة الوظيفية الكسولة)
  6. باستخدام تدفق بيانات TPL
  7. 1 2 3 باستخدام الإضافات التفاعلية (Rx)
  8. إرسال متعدد، مجموعات من الأساليب
  9. 1 2 3 4 5 برمجة الممثل
  10. الوعود، الامتدادات الأصلية
  11. باستخدام وحدة التجميع في Node.js أوطريقة child_process.fork ، وعمال الويب في المتصفح، وما إلى ذلك.
  12. 1 2 3 4 قائم على النموذج الأولي
  13. باستخدام الإضافات التفاعلية (RxJS)
  14. في Node.js عبروحدة الأحداث الخاصة بهم
  15. في المتصفحات عبرتطبيقات EventTarget الأصلية الخاصة بها
  16. 1 2 3 وظيفي بحت
  17. فئات مُعَلمة
  18. غير قابل للتغيير
  19. يستخدم هياكل البيانات مع تعدد أشكال الوظائف والإرسال المتعدد
  20. أكا مؤرشفة بتاريخ 19 يناير 2013 في أرشيف الإنترنت

الاقتباسات

  1. براغ، إس دي؛ دريسكيل، سي جي (20-22 سبتمبر 1994). "لغات البرمجة التخطيطية الرسومية ومعيار وزارة الدفاع الأمريكية 2167A". وقائع مؤتمر AUTOTESTCON '94 (فيسبوك ). معهد مهندسي الكهرباء والإلكترونيات (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 الملحق هـ: الأنظمة الموزعة
  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. SystemC
  12. Boost.Iostreams
  13. بولينك
  14. "AraRat" (ملف PDF) . مؤرشف من النسخة الأصلية (PDF) بتاريخ 19 أغسطس 2019. تم الاطلاع عليه بتاريخ 15 سبتمبر 2019 .
  15. OpenMPI
  16. Boost.MPI
  17. Boost.MPL
  18. LC++
  19. تم أرشفة كاستور في 25 يناير 2013 على موقع Wayback Machine
  20. مكتبة ريفليكت
  21. N3534
  22. تعزيز الروح
  23. صاحب القرار
  24. زين
  25. لينك
  26. أورليانز
  27. WCF
  28. انعكاس
  29. مولدات المصادر
  30. غوان
  31. NetPrints
  32. محرك القواعد
  33. كلوجر - البرمجة المتزامنة
  34. كلوجر - core.async
  35. كلوجر - البرمجة الوظيفية
  36. كلوجر - وحدات الماكرو
  37. كلوجر - منطق أساسي
  38. دليل وحدات الماكرو للخيوط في كلوجر
  39. الأساليب المتعددة والتسلسلات الهرمية
  40. الوكلاء والإجراءات غير المتزامنة
  41. "التزامن" . كليكي .
  42. برمجة القيود داخل لغة CL من خلال الإضافات
  43. امتداد تدفق البيانات
  44. من خلال إنشاء لغات برمجة خاصة بالمجال باستخدام البرمجة الوصفية المدمجة؛ انظر أيضًا الملاحظة حول النماذج الوظيفية والقيود والمنطقية، والتي تُعد جزءًا من البرمجة التصريحية.
  45. MPI، وما إلى ذلك عبر امتدادات اللغة
  46. برمجة القوالب الوصفية باستخدام وحدات الماكرو (انظر C++)
  47. تم تطبيق لغة برولوج كامتداد للغة
  48. نظام كائنات Common Lisp انظر مقالة ويكيبيديا حول CLOS، نظام كائنات Common Lisp.
  49. يتم تنفيذه بواسطة المستخدم عبر ماكرو قصير، مثال على التنفيذ
  50. - أداة برمجة مرئية تعتمد على لغة Common Lisp
  51. امتداد البرمجة القائمة على القواعد
  52. تمت أرشفة هذا المحتوى بتاريخ 26 أبريل 2018 على موقع Wayback Machine عبر بروتوكول Meta Object Protocol.
  53. جدول خصائص لغة D
  54. خوارزمية فوبوس القياسية
  55. مزيج سلاسل لغة D
  56. يوضح برنامج The Little JavaScripter أوجه التشابه الأساسية مع لغة Scheme، وهي لغة وظيفية.
  57. البرمجة الكائنية في جافا سكريبت مؤرشفة في 2019-02-10 في Wayback Machine تقدم نظرة عامة على تقنيات البرمجة الكائنية في جافا سكريبت.
  58. "React – مكتبة جافا سكريبت لبناء واجهات المستخدم" . 2019-04-08.
  59. "TNG-Hooks" . GitHub . 2019-04-08.
  60. "وثائق Lodash" . 2019-04-08.
  61. "mori" . 2019-04-08.
  62. "TNG-Hooks" . GitHub . 2019-04-08.
  63. "تضمين برولوج" . Haskell.org .
  64. "البرمجة التفاعلية الوظيفية" . هاسكل ويكي .
  65. هاسكل السحابية
  66. "قالب هاسكل" . هاسكل ويكي .
  67. "Logict: A backtracking logic-programming monad" . Haskell.org .
  68. كولمانسبيرجر، ستيف؛ إرويغ، مارتن (30 مايو 2006). "قواعد هاسكل: تضمين أنظمة القواعد في هاسكل" (ملف PDF) . جامعة ولاية أوريغون .
  69. https://jcp.org/en/jsr/detail?id=331 JSR 331: واجهة برمجة تطبيقات البرمجة المقيدة
  70. https://github.com/GoogleCloudPlatform/DataflowJavaSDK مجموعة أدوات تطوير برامج Dataflow لمنصة Google Cloud
  71. "JuliaOpt/JuMP.jl" . GitHub . JuliaOpt. 11 فبراير 2020. تم الاطلاع عليه في 12 فبراير 2020 .
  72. "GitHub - MikeInnes/DataFlow.jl" . GitHub . 2019-01-15.
  73. "GitHub - JuliaGizmos/Reactive.jl: أدوات برمجة تفاعلية للغة جوليا" . GitHub . 2018-12-28.
  74. https://github.com/davidanthoff/Query.jl استعلم عن أي شيء تقريبًا في لغة جوليا
  75. https://github.com/lilinjn/LilKanren.jl مجموعة من تطبيقات Kanren بلغة Julia
  76. "GitHub - abeschneider/PEGParser.jl: محلل PEG للغة جوليا" . GitHub . 2018-12-03.
  77. "GitHub - gitfoxi/Parsimonious.jl: مولد محلل PEG للغة جوليا" . GitHub . 2017-08-03.
  78. Lazy https://github.com/MikeInnes/Lazy.jl
  79. "تنفيذ تكرارات الحلقة بالتوازي" . mathworks.com . تم الاطلاع عليه بتاريخ 21 أكتوبر 2016 .
  80. "كتابة القيود" . mathworks.com . تم الاطلاع عليه بتاريخ 21 أكتوبر 2016 .
  81. "البدء باستخدام SimEvents" . mathworks.com . تم الاطلاع عليه بتاريخ 21 أكتوبر 2016 .
  82. "تنفيذ تكرارات الحلقة بالتوازي" . mathworks.com . تم الاطلاع عليه بتاريخ 21 أكتوبر 2016 .
  83. "تنفيذ تعبير MATLAB في نص - MATLAB eval" . mathworks.com . تم الاطلاع عليه بتاريخ 21 أكتوبر 2016 .
  84. "تحديد فئة الكائن" . mathworks.com . تم الاطلاع عليه بتاريخ 21 أكتوبر 2016 .
  85. "بيانات تعريف الفئة" . mathworks.com . تم الاطلاع عليه بتاريخ 21 أكتوبر 2016 .
  86. "البرمجة الكائنية التوجه" . mathworks.com . تم الاطلاع عليه بتاريخ 21 أكتوبر 2016 .
  87. "Simulink" . mathworks.com . تم الاطلاع عليه بتاريخ 21 أكتوبر 2016 .
  88. سلاسل الرسائل المستندة إلى المترجم
  89. بيرل من الرتبة العليا
  90. دليل PHP ، الفصل 17. الدوال
  91. دليل PHP ، الفصل 19. الفئات والكائنات (PHP 5)
  92. دليل PHP ، الدوال المجهولة
  93. "المعالجة المتوازية والمعالجة المتعددة في بايثون" . ويكي بايثون . تم الاطلاع عليه بتاريخ 21 أكتوبر 2016 .
  94. "الترابط - واجهة ترابط عالية المستوى" . docs.python.org . تم الاطلاع عليه بتاريخ 21 أكتوبر 2016 .
  95. "python-constraint" . pypi.python.org . تم الاطلاع عليه بتاريخ 21 أكتوبر 2016 .
  96. "البرمجة الموزعة" . ويكي بايثون . تم الاطلاع عليه بتاريخ 21 أكتوبر 2016 .
  97. "الفصل 9. البرمجة الوصفية" . chimera.labs.oreilly.com . مؤرشف من الأصل بتاريخ 23 أكتوبر 2016. تم الاطلاع عليه بتاريخ 22 أكتوبر 2016 .
  98. "البرمجة الوصفية" . readthedocs.io . تم ​​الاطلاع عليه بتاريخ 22 أكتوبر 2016 .
  99. "PEP 443 – الدوال العامة ذات الإرسال الواحد" . python.org . تم الاطلاع عليه بتاريخ 22 أكتوبر 2016 .
  100. "PEP 484 – تلميحات النوع" . python.org . تم الاطلاع عليه بتاريخ 22 أكتوبر 2016 .
  101. "PyDatalog" . تم الاطلاع عليه بتاريخ 22 أكتوبر 2016 .
  102. "عالم المستقبل" .
  103. "أدوات المعالجة الدفعية المستقبلية" .
  104. "Magrittr: مُشغِّل الأنابيب الأمامية للغة R" . cran.r-project.org\access-date=13 يوليو 2017. 17 نوفمبر 2020.
  105. دليل Racket: التزامن والتنسيق
  106. دليل الوردة
  107. FrTime: لغة للبرامج التفاعلية
  108. دليل المضرب: أماكن التوزيع
  109. مضرب الكسول
  110. القنوات والآليات الأخرى
  111. "وحدة حل المشكلات" .
  112. مشغل التغذية
  113. https://github.com/perl6/doc/issues/1744#issuecomment-360565196 وحدة Cro
  114. "البرمجة الفوقية: ما هي، ولماذا، وكيف" . 2011-12-14.
  115. https://perl6advent.wordpress.com/2009/12/18/day-18-roles/ الأدوار المُعَلمة
  116. "بروتوكول الكائن الفوقي (MOP)" .
  117. https://docs.perl6.org/language/classtut الفئات والأدوار
  118. "دليل وحدات الماكرو في لغة Rust" . Rust . تم الاطلاع عليه بتاريخ 19 يناير 2015 .
  119. "دليل إضافات مُصرّف لغة Rust" . Rust . تم الاطلاع عليه بتاريخ 19 يناير 2015 .
  120. مرجع Rust §6.1.3.1
  121. نظرة عامة على لغة برمجة سكالا
  122. مواصفات لغة سكالا
  123. "برمجة Tcl/مقدمة" . en.wikibooks.org . تم الاطلاع عليه بتاريخ 22 أكتوبر 2016 .
  124. "TCLLIB - مكتبة Tcl القياسية: snitfaq" . sourceforge.net . تم الاطلاع عليه بتاريخ 22 أكتوبر 2016 .
  125. ملاحظات لخبراء لغات البرمجة ، وثائق لغة وولفرام.
  126. البرامج الخارجية ، وثائق لغة وولفرام.

مراجع

  • جيم كوبلين، تصميم متعدد النماذج للغة C++ ، أديسون-ويسلي بروفيشنال، 1998.