مقارنة لغات البرمجة
تُستخدم لغات البرمجة للتحكم في سلوك الآلة (غالباً الحاسوب ). ومثل اللغات الطبيعية ، تتبع لغات البرمجة قواعد بناء الجملة والدلالات .
توجد آلاف لغات البرمجة [ 1 ]، وتُبتكر لغات جديدة كل عام. نادرًا ما تحظى لغات البرمجة بشعبية كافية ليستخدمها أكثر من عدد قليل من الأشخاص، لكن المبرمجين المحترفين قد يستخدمون عشرات اللغات خلال مسيرتهم المهنية.
معظم لغات البرمجة غير موحدة بمعيار دولي (أو وطني)، حتى تلك الشائعة الاستخدام، مثل بيرل أو ستاندرد إم إل (على الرغم من الاسم). ومن أبرز لغات البرمجة الموحدة: ألغول ، وسي ، وسي++ ، وجافا سكريبت (تحت اسم إيكما سكريبت )، وسمول توك ، وبرولوج ، وكومون ليسب ، وسكيم ( معيار IEEE )، وإيسليسب ، وآدا ، وفورتران ، وكوبول ، وإس كيو إل ، وإكس كويري .
مقارنة عامة
يقارن الجدول التالي المعلومات العامة والتقنية لمجموعة مختارة من لغات البرمجة الشائعة الاستخدام . راجع مقالات كل لغة على حدة لمزيد من المعلومات.
| لغة | الغرض الأصلي | إلزامي | البرمجة الكائنية | وظيفي | إجرائي | نوعي | عاكس | نماذج أخرى | موحد |
|---|---|---|---|---|---|---|---|---|---|
| 1C: لغة برمجة المؤسسات | تطبيق ، تطوير التطبيقات السريع ، أعمال، عام ، ويب ، جوال | نعم | لا | نعم | نعم | نعم | نعم | البرمجة القائمة على الكائنات ، البرمجة القائمة على النماذج الأولية | لا |
| أكشن سكريبت | تطبيق، من جانب العميل ، ويب | نعم | نعم | نعم | نعم | لا | لا | نموذج أولي قائم على | نعم ، 1999-2003، ActionScript 1.0 مع ES3، ActionScript 2.0 مع ES3 ومسودة جزئية من ES4، ActionScript 3.0 مع مسودة ES4 ، ActionScript 3.0 مع E4X |
| آدا | تطبيق، مضمن ، في الوقت الحقيقي ، نظام | نعم | نعم [ 2 ] | لا | نعم [ 3 ] | نعم [ 4 ] | لا | متزامن ، [ 5 ] موزع [ 6 ] | نعم 1983، 2005، 2012، ANSI، ISO، GOST 27831-88 [ 7 ] |
| ألدور | الحوسبة الرمزية شديدة التخصص في مجال معين | نعم | نعم | نعم | لا | لا | لا | لا | |
| ALGOL 58 | طلب | نعم | لا | لا | لا | لا | لا | لا | |
| ALGOL 60 | طلب | نعم | لا | لا | نعم | نعم | لا | نعم 1960، IFIP WG 2.1 ، ISO [ 8 ] | |
| ALGOL 68 | طلب | نعم | لا | نعم | نعم | نعم | لا | متزامن | نعم 1968، IFIP WG 2.1 ، GOST 27974-88 ، [ 9 ] |
| أتيجي بي إكس | تطبيق متوازي | لا | نعم | لا | لا | لا | لا | حساب التفاضل والتكامل باي | لا |
| APL | تطبيق، معالجة البيانات | نعم | نعم | نعم | نعم | نعم | نعم | موجه نحو المصفوفات ، ضمني | نعم 1989، ISO |
| لغة التجميع | عام | نعم | لا | لا | لا | لا | لا | أي، عادةً ما تكون الصيغة شديدة التخصص، وترتبط بالمعالج المستهدف. | نعم 1985 IEEE 694-1985 [ 10 ] |
| أوتوهوتكي | أتمتة واجهة المستخدم الرسومية ( وحدات الماكرو )، خاصة بمجال معين للغاية | نعم | نعم [ 11 ] | لا | نعم | لا | لا | لا | |
| أوتو إت | أتمتة واجهة المستخدم الرسومية (الماكرو)، خاصة بمجال معين للغاية | نعم | لا | لا | نعم | لا | لا | لا | |
| راقصة باليه | التكامل، الرشاقة، جانب الخادم ، عام | نعم | نعم | نعم | نعم | لا | لا | متزامن، وتفاعلي، وثابت، ومكتوب بقوة، ومخططي-مرئي | المعيار الفعلي عبر مواصفات لغة باليرينا [ 12 ] |
| سحق | شل ، البرمجة النصية | نعم | لا | لا | نعم | لا | لا | اختياريًا POSIX.2 [ 13 ] | |
| أساسي | التقديم، التعليم | نعم | لا | لا | نعم | لا | لا | نعم 1983، ANSI، ISO، ECMA | |
| بينشيل | التطبيق، البرمجة النصية | نعم | نعم | نعم | لا | لا | نعم | لا، قيد التقدم، JCP [ 14 ] | |
| النعيم | نظام | لا | لا | لا | نعم | لا | لا | لا | |
| بليتز ماكس | تطبيق، لعبة | نعم | نعم | لا | نعم | لا | نعم | لا | |
| بو | تطبيق، برمجة ألعاب | لا | نعم | لا | لا | لا | لا | لا | |
| ج | التطبيق، النظام، [ 15 ] أغراض عامة، عمليات منخفضة المستوى | نعم | لا | لا | نعم | لا | لا | نعم 1989، ANSI C89، ISO/IEC C90، ISO/IEC C95، ISO/IEC C99، ISO/IEC C11، ISO/IEC C17، ISO/IEC C2x [ 16 ] | |
| لغة سي++ | التطبيق، النظام | نعم | نعم | نعم | نعم | نعم | نعم | متزامن | نعم 1998، ISO/IEC C++98، ISO/IEC C++03، ISO/IEC C++11، ISO/IEC C++14، ISO/IEC C++17، ISO/IEC C++20، ISO/IEC C++23، ISO/IEC C++26 [ 17 ] |
| سي شارب | تطبيقات، تطوير سريع للتطبيقات، أعمال، جانب العميل، عام، جانب الخادم، ويب، برمجة الألعاب | نعم | نعم | نعم [ 18 ] | نعم | نعم | نعم | متزامن، منظم | نعم 2000، ECMA، ISO [ 19 ] |
| الكربون | لغة تجريبية خلف للغة C++ ، صممتها جوجل للبرامج ذات الأداء الحساس | نعم | نعم | نعم | نعم | نعم | لا | متعدد النماذج | لا |
| كلاريون | عام، أعمال، ويب | نعم | نعم | نعم [ 20 ] | لا | لا | لا | مجهول | |
| ينظف | عام | لا | لا | نعم | لا | نعم | لا | لا | |
| كلوجر | عام | لا | لا | نعم | لا | لا | لا | متزامن | لا |
| CLU | عام | نعم | نعم | لا | نعم | نعم | لا | لا | |
| كوبول | تطبيق، أعمال | نعم | نعم | لا | نعم | لا | لا | نعم 1968 أنسي X3.23، 1974، 1985؛ ISO/IEC 1989:1985، 2002، 2014، 2023 | |
| الكوبرا | تطبيق، أعمال، عام، ويب | نعم | نعم | نعم | لا | نعم | نعم | لا | |
| كولد فيوجن (CFML) | الويب | لا | نعم | لا | نعم | لا | لا | لا | |
| لغة الشفرة الشائعة | عام | نعم | نعم | نعم | نعم | نعم | نعم | بنية قابلة للتوسيع، موجهة نحو المصفوفات ، وحدات ماكرو نحوية ، إرسال متعدد ، متزامن | نعم ، 1994، ANSI |
| كومال 80 | تعليم | نعم | لا | لا | نعم | لا | لا | لا | |
| كريستال | إعلان عام | نعم | نعم [ 21 ] | نعم | نعم | نعم [ 22 ] | لا | متزامن [ 23 ] | لا |
| كاري | طلب | لا | لا | نعم | لا | نعم | لا | التقييم الكسول ، عدم الحتمية | المعيار الفعلي عبر تقرير لغة الكاري |
| سيثون | التطبيقات، العامة، الحوسبة العددية | نعم | نعم | نعم | لا | لا | نعم | موجه نحو الجوانب | لا |
| د | التطبيق، النظام | نعم | نعم | نعم | نعم | نعم | نعم | توليدي، متزامن | لا |
| دارت | تطبيق، ويب، جانب الخادم، جوال، إنترنت الأشياء | نعم | نعم | نعم | نعم | نعم | لا | منظم | نعم، معيار ECMA-408 |
| دلفي ، أوبجكت باسكال | إعلان عام | نعم | نعم | نعم | نعم | نعم | نعم | مجهول | |
| ديلان | طلب | لا | نعم | نعم | لا | لا | لا | لا | |
| إيفل | عام، تطبيق، أعمال، جانب العميل، جانب الخادم، ويب (EWF) | نعم | نعم | نعم [ 24 ] [ 25 ] | لا | نعم | نعم إيرل-جي | SCOOP الموزع ، آمن ضد الفراغ | نعم 2005، ECMA، ISO [ 26 ] |
| إيلان | تعليم | نعم | لا | لا | نعم | لا | لا | تحسين منظم وتدريجي | لا |
| إكسير | تطبيق موزع | لا | لا | نعم | لا | لا | نعم | متزامن، موزع | لا |
| إرلانغ | تطبيق موزع | لا | لا | نعم | لا | لا | نعم | متزامن، موزع | لا |
| نشوة | طلب | لا | لا | لا | نعم | لا | نعم | لا | |
| عامل | عام | نعم | لا | يمكن اعتبارها | لا | نعم | نعم | موجه نحو المكدس | لا |
| FP | لا | لا | نعم | لا | لا | لا | لا | ||
| فا# | طلب | نعم | نعم | نعم | نعم | نعم | نعم | لا | |
| إلى الأمام | عام | نعم | لا | لا | نعم | لا | نعم | موجه نحو المكدس | نعم ، 1994، ANSI |
| فورتران | التطبيق، الحوسبة العددية | نعم | نعم | نعم | نعم | نعم | لا | التوازي القائم على المصفوفات، والمتجه، والمتزامن، والموزع/المشترك الأصلي | نعم 1966، ANSI 66، ANSI 77، MIL-STD-1753، ISO 90، ISO 95، ISO 2003، ISO/IEC 1539-1:2010 (2008)، ISO/IEC JTC1/SC22/WG5 N2145 (2018) |
| فري بيسيك | التطبيق، الحوسبة العددية | نعم | نعم | لا | نعم | نعم | لا | لا | |
| غامباس | طلب | نعم | نعم | لا | لا | لا | لا | لا | |
| لغة صانع الألعاب | تطبيقات، برمجة الألعاب | نعم | نعم | لا | لا | لا | لا | لا | |
| GLBasic | تطبيقات، ألعاب | نعم | نعم | لا | نعم | لا | لا | كائنات بسيطة | لا |
| يذهب | تطبيق، ويب، جانب الخادم | نعم | يمكن اعتبارها [ 27 ] | يمكن اعتبارها [ 28 ] | نعم | نعم | نعم | متزامن | معيار فعلي عبر مواصفات لغة Go |
| جوسو | تطبيق، عام، برمجة نصية، ويب | نعم | نعم | لا | لا | نعم | نعم | لا | |
| غراف توك | طلب | لا | نعم | لا | لا | لا | لا | منطق | لا |
| رائع | تطبيق، عام، برمجة نصية، ويب | نعم | نعم | نعم | نعم | نعم | نعم | البرمجة الوصفية | لا، قيد التقدم، JCP [ 29 ] |
| الميناء | تطبيق، أعمال، معالجة البيانات، عام، ويب | نعم | نعم | نعم | نعم | نعم | نعم | تصريحي | لا |
| هاسكل | طلب | لا | لا | نعم | لا | نعم | لا | التقييم الكسول | نعم 2010، هاسكل 2010 [ 30 ] |
| هاكس | تطبيق، عام، ويب | نعم | نعم | نعم | لا | نعم | نعم | لا | |
| هايبر توك | تطبيق، RAD، عام | نعم | لا | لا | نعم | لا | نعم | كتابة ضعيفة | مجهول |
| Io | برمجة التطبيقات، البرمجة النصية التي تعتمد على المضيف | نعم | نعم | لا | لا | لا | لا | لا | |
| الدوري الهندي الممتاز | عام | لا | لا | نعم | لا | لا | لا | مجهول | |
| لغة ISLISP | عام | نعم | نعم | نعم | لا | نعم | لا | نعم ، 1997، 2007، ISO | |
| ج | تطبيق، معالجة البيانات | نعم | نعم | نعم | نعم | نعم | نعم | موجه نحو المصفوفات، على مستوى الوظائف ، ضمني، متزامن | لا |
| يشم | تطبيق موزع | نعم | نعم | لا | لا | لا | لا | لا | |
| جافا | تطبيقات، أعمال، جانب العميل، عام، تطوير تطبيقات الجوال، جانب الخادم، ويب | نعم | نعم | نعم | نعم | نعم | نعم | متزامن | معيار فعلي عبر مواصفات لغة جافا |
| جافا سكريبت | من جانب العميل، من جانب الخادم، الويب | نعم | نعم | نعم | نعم | لا | نعم | نموذج أولي قائم على | نعم، معيار ECMA-262 |
| مرح | بحث | لا | لا | نعم | لا | لا | لا | موجه نحو المكدس | لا |
| jq | "awk for JSON" | لا | لا | نعم | لا | لا | لا | ضمني ، تراجع ، بث مباشر ، PEG | لا |
| جوليا | الحوسبة التقنية العامة | نعم | يمكن النظر إليها على النحو التالي: [ 31 ] [ 32 ] | نعم | نعم | نعم | نعم | إرسال متعدد، وبيانات وصفية، وقياسي وموجه نحو المصفوفات، ومتوازي، ومتزامن، وموزع ("السحابة") | المعيار الفعلي عبر وثائق جوليا [ 33 ] |
| ك | معالجة البيانات، الأعمال | لا | لا | لا | لا | لا | لا | موجه نحو المصفوفات، ضمني | مجهول |
| كوتلين | التطبيقات، العامة، تطوير تطبيقات الجوال، جانب الخادم، جانب العميل، الويب، البرمجة النصية، [ 34 ] خاصة بالمجال [ 35 ] | نعم | نعم | نعم | نعم | نعم | نعم [ 36 ] | متزامن [ 37 ] | معيار فعلي عبر مواصفات لغة كوتلين |
| كش | شل ، البرمجة النصية | نعم | نعم | لا | نعم | لا | لا | عدة إصدارات، قابلة للبرمجة حسب الطلب، ووحدات قابلة للتحميل الديناميكي | اختياريًا POSIX.2 [ 13 ] |
| LabVIEW (G) | التطبيقات، الأجهزة الصناعية - الأتمتة | نعم | نعم | نعم | لا | لا | لا | تدفق البيانات ، مرئي | لا |
| التلعثم | عام | لا | لا | نعم | لا | لا | لا | مجهول | |
| LiveCode | تطبيق، RAD، عام | نعم | نعم | لا | نعم | لا | نعم | كتابة ضعيفة | لا |
| لغة الاتصال | الذكاء الاصطناعي، التطبيقات | لا | نعم | لا | لا | لا | نعم | منطق | لا |
| لغة البرمجة النصية ليندن (LSL) | كتابة محتوى ورسوم متحركة للعوالم الافتراضية | نعم | لا | لا | نعم | لا | لا | توجد البرامج النصية في الكائنات الموجودة داخل العالم الافتراضي | المرجع الفعلي هو تطبيق Second Life للغة LSL . [ 38 ] |
| لغة لوا | تطبيق، برمجة مضمنة | نعم | نعم [ 39 ] | نعم | نعم | لا | نعم | موجه نحو الجوانب، قائم على النموذج الأولي | لا [ 40 ] |
| خشب القيقب | الحساب الرمزي، الحساب العددي | نعم | نعم | نعم | نعم | لا | لا | موزع | لا |
| ماثيماتيكا | اللغة الرمزية | نعم | نعم | نعم | نعم | نعم | نعم | المنطق الموزع | لا |
| MATLAB | الحوسبة العددية شديدة التخصص في مجال معين | نعم | نعم | لا | نعم | لا | لا | لا | |
| مودولا-2 | التطبيق، النظام | نعم | لا | لا | لا | نعم | لا | نعم 1996، ISO [ 41 ] | |
| مودولا-3 | طلب | نعم | نعم | لا | لا | نعم | لا | لا | |
| النكاف (ذكر) | عام، تطبيق، قواعد البيانات | نعم | معتمد للمعيار التالي | لا | نعم | جزئيًا من خلال التوجيه غير المباشر و Xecute | نعم | معالجة المعاملات المتزامنة ، متعددة المستخدمين ، NoSQL | نعم ، 1977 ANSI، 1995، ISO 2020 |
| نيم | تطبيق، عام، ويب، برمجة نصية، نظام | نعم | نعم | نعم | نعم | نعم | نعم | إرسال متعدد، متزامن، بيانات وصفية | لا |
| أوبرون | التطبيق، النظام | نعم | نعم | لا | لا | لا | لا | لا | |
| أوبجكت باسكال | تطبيق، عام، تطبيق جوال، ويب | نعم | نعم | لا | نعم | نعم | نعم | منظم | لا |
| أوبجكتيف سي | تطبيق، عام | نعم | نعم | لا | نعم | لا | نعم | متزامن | لا |
| أوكاميل | تطبيق، عام | نعم | نعم | نعم | نعم | نعم | لا | لا | |
| أوكام | عام | نعم | لا | لا | نعم | لا | لا | متزامن، موجه نحو العمليات | لا |
| أوبا | تطبيقات الويب | نعم | لا | نعم | لا | نعم | لا | موزع | لا |
| أوبن ليسب | محرك لغة ليسب المضمنة العامة | نعم | نعم | نعم | لا | نعم | لا | اختياريًا ISLISP | |
| الأكسجين | طلب | نعم | نعم | لا | لا | نعم | لا | لا | |
| أوز-موزارت | التطبيق والتوزيع والتعليم | نعم | نعم | نعم | لا | لا | لا | متزامن، منطقي | لا |
| باسكال | التقديم، التعليم | نعم | لا | لا | نعم | لا | لا | نعم 1983، ISO [ 42 ] | |
| بيرل | التطبيقات، البرمجة النصية، معالجة النصوص، الويب | نعم | نعم | نعم | نعم | نعم | نعم | لا | |
| PHP | من جانب الخادم، تطبيق ويب، ويب | نعم | نعم [ 43 ] | نعم [ 44 ] | نعم | لا | نعم | معيار فعلي من خلال مواصفات اللغة وطلبات التعليقات (RFCs) | |
| PL/I | طلب | نعم | نعم | لا | نعم | لا | لا | نعم 1969، ECMA-50 (1976) | |
| زائد | تطوير التطبيقات والأنظمة | نعم | لا | لا | نعم | لا | لا | لا | |
| ملاحظة لاحقة | الرسومات، وصف الصفحة | نعم | لا | لا | نعم | لا | لا | تجميعي ، موجه نحو المكدس | المعيار الفعلي عبر دليل مرجع PostScript [ 45 ] |
| باور شيل | الإدارة، التطبيق، عام، البرمجة النصية | نعم | نعم | نعم | نعم | لا | نعم | خط الأنابيب | لا |
| مقدمة | تطبيق، الذكاء الاصطناعي | لا | لا | نعم | نعم | لا | نعم | المنطق، التصريحي | نعم 1995، ISO/IEC 13211-1:1995، TC1 2007، TC2 2012، TC3 2017 |
| بيور بيسك | طلب | نعم | لا | لا | نعم | لا | لا | لا | |
| بايثون | تطبيقات، عامة، ويب، برمجة نصية، ذكاء اصطناعي، حوسبة علمية | نعم | نعم | نعم | نعم | نعم | نعم | موجه نحو الجوانب | المعيار الفعلي عبر مقترحات تحسين بايثون (PEPs) |
| R | التطبيق، الإحصائيات | نعم | نعم | نعم | نعم | لا | نعم | لا | |
| مضرب | التعليم، عام، كتابة النصوص | نعم | نعم | نعم | نعم | لا | نعم | معياري ، منطقي، ميتا | لا |
| راكو | كتابة البرامج النصية، معالجة النصوص، اللصق | نعم | نعم | نعم | نعم | نعم | نعم | البرمجة الموجهة نحو الجوانب، المصفوفات، التقييم الكسول، الإرسال المتعدد، البرمجة الوصفية | لا |
| ريال بيسك | طلب | لا | لا | لا | نعم | لا | لا | مجهول | |
| ريبول | موزع | نعم | نعم | نعم | نعم | لا | نعم | لهجة | لا |
| ريكس | كتابة البرامج النصية | نعم | نعم ( لهجات NetRexx و Object REXX ) | لا | نعم | لا | لا | نعم 1996 (ANSI X3.274-1996) | |
| لعبة تقمص الأدوار | التطبيق، النظام | نعم | لا | لا | نعم | لا | لا | لا | |
| روبي | التطبيقات، البرمجة النصية، الويب | نعم | نعم | نعم | لا | لا | نعم | موجه نحو الجوانب | نعم 2011 (JIS X 3017)، 2012 (ISO/IEC 30170) |
| الصدأ | التطبيق، جانب الخادم، النظام، الويب | نعم | يمكن اعتبارها [ 46 ] | نعم | نعم | نعم | لا [ 47 ] | متزامن | المعيار الفعلي في إصدارات Rust الرسمية |
| S | التطبيق، الإحصائيات | نعم | نعم | نعم | نعم | لا | لا | لا | |
| دارجة | التطبيق، العددي، البرمجة النصية | نعم | لا | لا | نعم | لا | لا | لا | |
| سكالا | تطبيق، عام، متوازٍ، موزع، ويب | نعم | نعم | نعم | لا | نعم | نعم | البرمجة الموجهة نحو البيانات، البرمجة الوصفية | معيار فعلي عبر مواصفات لغة سكالا (SLS) |
| مخطط | التعليم، عام | نعم | لا | نعم | لا | لا | لا | البيانات الوصفية، بناء الجملة القابل للتوسيع | بحكم الواقع 1975-2013، R 0 RS، R 1 RS، R 2 RS، R 3 RS، R 4 RS، R 5 RS، R 6 RS، R 7 RS إصدار صغير [ 48 ] [ 49 ] |
| سيد7 | تطبيق، عام، برمجة نصية، ويب | نعم | نعم | لا | لا | نعم | نعم | متعدد النماذج، قابل للتوسيع، منظم | لا |
| محاكاة | التعليم، عام | نعم | نعم | لا | لا | لا | لا | محاكاة الأحداث المنفصلة ، تنفيذ البرامج متعددة الخيوط (شبه المتوازية) | نعم 1968 |
| Small Basic | التطبيقات، التعليم، الألعاب | نعم | لا | لا | لا | لا | لا | موجه نحو المكونات | لا |
| أحاديث قصيرة | تطبيقات، عامة، أعمال، ذكاء اصطناعي، تعليم، ويب | نعم | نعم | نعم | نعم | لا | نعم | متزامن، تصريحي | نعم ، 1998، ANSI |
| سنوبول | معالجة النصوص | لا | لا | لا | لا | لا | لا | مجهول | |
| لصق | مدمج، عام، قابلية النقل | نعم | لا | لا | نعم | لا | لا | آلة بايت كود الافتراضية | لا |
| لغة الآلة القياسية | طلب | نعم | لا | نعم | لا | نعم | لا | نعم 1997، SML '97 [ 50 ] | |
| سويفت | تطبيق، عام | نعم | نعم | نعم | نعم | نعم | نعم | متزامن، تصريحي، موجه نحو البروتوكول | لا |
| تي سي إل | التطبيقات، البرمجة النصية، الويب | نعم | نعم | نعم | نعم | لا | نعم | لا | |
| V (Vlang) | تطبيق، عام، نظام، لعبة، ويب، جانب الخادم | نعم | يمكن اعتبارها | يمكن اعتبارها | نعم | نعم | نعم | متزامن | لا |
| فيجوال بيسك | التطبيقات، التطوير السريع للتطبيقات، التعليم، الأعمال، عام، (يشمل VBA)، أتمتة المكاتب | نعم | نعم | لا | نعم | نعم | لا | موجه نحو المكونات | لا |
| فيجوال بيسك دوت نت | تطبيق، تطوير التطبيقات السريع، تعليم، ويب، أعمال، عام | نعم | نعم | نعم | نعم | نعم | نعم | منظم ومتزامن | لا |
| فيجوال فوكس برو | طلب | نعم | نعم | لا | نعم | لا | لا | البيانات والمنطق | لا |
| مقدمة مرئية | طلب | نعم | نعم | نعم | لا | لا | لا | تصريحي، منطقي | لا |
| لغة وولفرام | اللغة الرمزية | نعم | لا | نعم | نعم | نعم | نعم | المنطق الموزع | لا |
| مقاس كبير جدًا | نعم | نعم | لا | لا | لا | لا | البرمجة المفاهيمية | لا | |
| زوجو | تطبيق، تطوير التطبيقات السريع، عام، ويب | نعم | نعم | لا | نعم | لا | نعم | لا | |
| XPath / XQuery | قواعد البيانات، معالجة البيانات، البرمجة النصية | لا | لا | نعم | لا | لا | لا | موجه نحو الأشجار | نعم ، 1999 W3C XPath 1، 2010 W3C XQuery 1، 2014 W3C XPath/XQuery 3.0 |
| زيك | تطبيق خاص بمجال معين | نعم | لا | لا | لا | لا | لا | لا | |
| زيج | تطبيق، عام، نظام | نعم | لا | نعم | نعم | نعم | نعم | متزامن | لا |
| Zsh | شل ، البرمجة النصية | نعم | لا | لا | نعم | لا | لا | الوحدات القابلة للتحميل | اختياريًا POSIX.2 [ 13 ] |
أنظمة الكتابة
عمليات الإدخال/الإخراج الآمنة واستدعاءات النظام
تقوم معظم لغات البرمجة بطباعة رسالة خطأ أو إطلاق استثناء في حال فشل عملية إدخال/إخراج أو استدعاء نظام آخر (مثل chmod أو kill )، ما لم يُحدد المبرمج طريقة مختلفة للتعامل مع هذه الأحداث. وبالتالي، فإن هذه اللغات تتعامل مع حالات الفشل بأمان في هذا الصدد.
تتطلب بعض لغات البرمجة (وخاصةً القديمة منها) من المبرمجين إضافة فحوصات صريحة لهذه الأنواع من الأخطاء. ومن الناحية النفسية، قد تؤثر بعض الانحيازات المعرفية (مثل انحياز التفاؤل ) على المبتدئين والخبراء على حد سواء، مما يدفعهم إلى تجاهل هذه الفحوصات. وهذا بدوره قد يؤدي إلى سلوكيات خاطئة .
تُعدّ خاصية الإدخال/الإخراج الآمن من الفشل ميزةً في لغات البرمجة التالية: 1C:Enterprise ، Ada (الاستثناءات)، ALGOL (الاستثناءات أو القيمة المُعادة حسب الدالة)، Ballerina ، C# ، Common Lisp (نظام الشروط وإعادة التشغيل)، Curry ، D (إطلاق استثناء عند الفشل)، [ 51 ] Erlang ، Fortran ، Go (إلا إذا تم تجاهل النتيجة صراحةً)، Gosu ، Harbour ، Haskell ، ISLISP ، Java ، Julia ، Kotlin ، LabVIEW ، Mathematica ، Objective-C (الاستثناءات)، OCaml (الاستثناءات)، OpenLisp ، PHP ، Python ، Raku ، Rebol ، Rexx (مع معالجة اختيارية للإشارة عند حدوث خطأ)، Ruby ، Rust (إلا إذا تم تجاهل النتيجة صراحةً)، Scala ، [ 52 ] Smalltalk ، Standard ML ، Swift ≥ 2.0 (الاستثناءات)، Tcl ، Visual Basic ، Visual Basic (.NET) ، Visual Prolog ، Wolfram Language ، Xojo ، XPath / XQuery (باستثناءات) ، و Zeek .
لا يوجد إدخال/إخراج آمن في حالة الفشل : AutoHotkey (يجب التحقق من مستوى الخطأ العام بشكل صريح)، C ، [ 53 ] COBOL ، Eiffel (يعتمد في الواقع على المكتبة وليس محددًا بواسطة اللغة)، GLBasic (سيؤدي عمومًا إلى تعطل البرنامج)، RPG ، Lua (بعض الوظائف لا تحذر أو تطلق استثناءات)، و Perl . [ 54 ]
يتم تضمين بعض عمليات فحص الإدخال/الإخراج في C++ ( STL iostreams تُصدر خطأ عند الفشل ولكن واجهات برمجة تطبيقات C مثل stdio أو POSIX لا تفعل ذلك) [ 53 ] و Object Pascal ، في Bash [ 55 ] يكون اختياريًا.
التعبيرية
| لغة | نسبة البيانات [ 56 ] | نسبة الخطوط [ 57 ] |
|---|---|---|
| ج | 1 | 1 |
| لغة سي++ | 2.5 | 1 |
| فورتران | 2 | 0.8 |
| جافا | 2.5 | 1.5 |
| بيرل | 6 | 6 |
| أحاديث قصيرة | 6 | 6.25 |
| بايثون | 6 | 6.5 |
تزخر الأدبيات المتعلقة بلغات البرمجة بالعديد من الادعاءات غير الرسمية حول قدرتها التعبيرية النسبية ، ولكن لا يوجد إطار عمل لإضفاء الطابع الرسمي على هذه الادعاءات أو لاستخلاص نتائج مهمة. [ 58 ] يقدم هذا الجدول مقياسين للقدرة التعبيرية من مصدرين مختلفين. ويمكن الاطلاع على مقياس إضافي للقدرة التعبيرية، بوحدة بايت GZip، في لعبة معايير لغات البرمجة. [ 59 ]
المعايير

صُممت معايير الأداء لمحاكاة نوع معين من أحمال العمل على مكون أو نظام. قد لا تكون برامج الحاسوب المستخدمة في تجميع بعض بيانات معايير الأداء في هذا القسم مُحسَّنة بالكامل، كما أن مدى ملاءمة هذه البيانات محل جدل. تُعدّ معايير الأداء الأكثر دقة هي تلك المُخصصة لحالتك الخاصة. قد تكون لبيانات معايير الأداء الخاصة بالآخرين قيمة لبعضهم البعض، لكن التفسير الصحيح لها ينطوي على العديد من التحديات . يُحذّر موقع "لعبة معايير أداء لغات البرمجة" من الإفراط في التعميم بناءً على بيانات معايير الأداء، ولكنه يحتوي على عدد كبير من معايير الأداء الدقيقة لمقاطع برمجية مُساهم بها من قِبل المستخدمين، مع واجهة تُنشئ رسومًا بيانية وجداول متنوعة تُقارن بين لغات برمجة وأنواع اختبارات مُحددة. [ 62 ]
جدول زمني لمقارنات لغوية محددة
- 1974 – ملاحظات مقارنة حول Algol 68 و PL/I [ 63 ] – SH Valentine – نوفمبر 1974
- 1976 – تقييم ALGOL 68 و JOVIAL J3B و Pascal و Simula 67 و TACPOL مقابل TINMAN – متطلبات لغة برمجة عالية المستوى مشتركة.
- 1977 – مقارنة بين PASCAL و ALGOL 68 [ 64 ] – أندرو س. تانينباوم – يونيو 1977.
- 1993 – خمس لغات صغيرة وكيف نمت – BLISS ، Pascal ، ALGOL 68 ، BCPL & C – دينيس م. ريتشي – أبريل 1993.
- 2009 - حول لغة البرمجة Go - هيا بنا - ما مدى قدرة لغة البرمجة Go من جوجل على منافسة لغة البرمجة X؟ - ديفيد جيفن - نوفمبر 2009
انظر أيضاً
مراجع
- ↑ اعتبارًا من مايو 2006، فإن موسوعة ديارميد بيجوت للغات الحاسوبية المؤرشفة في 2011-02-20 في Wayback Machine والمستضافة في جامعة مردوخ ، أستراليا، تسرد 8512 لغة حاسوبية.
- ↑ دليل مرجعي لـ Ada، ISO/IEC 8652:2005(E) الإصدار 3 ، 3.9 الأنواع الموسومة وامتدادات الأنواع
- ↑ دليل مرجعي لـ Ada، ISO/IEC 8652:2005(E) الإصدار 3 ، القسم 6: البرامج الفرعية
- ↑ دليل مرجعي لـ Ada، ISO/IEC 8652:2005(E) الإصدار 3 ، القسم 12: الوحدات العامة
- ↑ دليل مرجعي لـ Ada، ISO/IEC 8652:2005(E) الإصدار 3 ، القسم 9: المهام والمزامنة
- ↑ "الأنظمة الموزعة" . www.adaic.org .
- ↑ "Vak.ru" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 30 مارس 2017. تم الاطلاع عليه بتاريخ 9 أغسطس 2008 .
- ^ "ISO/IEC JTC1/SC22/WG6 - الجول" . www.open-std.org .
- ↑ "Vak.ru" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 24-03-2017 . تم الاطلاع عليه بتاريخ 09-08-2008 .
- ↑ "جمعية معايير IEEE" . جمعية معايير IEEE .
- ↑ "الأشياء - التعريف والاستخدام" .
- ↑ "مواصفات لغة الباليرينا" (ملف PDF) . WSO2. 2018-05-01. مؤرشف من الأصل (ملف PDF) بتاريخ 2018-05-04 . تم الاطلاع عليه بتاريخ 2018-05-03 .
- 1 2 3 POSIX.2 ، Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992.)
- ↑ "برنامج عملية مجتمع جافا (SM) - طلبات مواصفات جافا: JSRs - تفاصيل JSR# 274" . jcp.org .
- ^ "التاريخ" . www.bell-labs.com .
- ↑ "ISO/IEC JTC1/SC22/WG14 - C" . www.open-std.org .
- ↑ "ISO/IEC JTC1/SC22/WG21 - لجنة معايير لغة C++ - ISOCPP" . www.open-std.org .
- ↑ "Codeproject.com: البرمجة الوظيفية في C# 3.0 باستخدام تعبير Lambda" .
- ↑ ECMA-334؛ ISO/IEC 23270:2006
- ↑ "كلاريون - الصفحة الرئيسية" . www.softvelocity.com .
- ↑ "كريستال" . جيت هاب . 2 نوفمبر 2021.
- ↑ "الأنواع العامة في لغة كريستال" . crystal-lang.org . 13 أبريل 2024.
- ↑ "التزامن - كريستال" . crystal-lang.org . تم الاطلاع عليه بتاريخ 2024-04-02 .
- ↑ "برتراند ماير: آليات لغة إيفل الأساسية" . se.inf.ethz.ch .
- ↑ الإغلاق (برمجة الحاسوب)
- ↑ ECMA-367؛ ISO/IEC 25436:2006
- ↑ "الأسئلة الشائعة (FAQ) - لغة البرمجة Go" . go.dev .
- ↑ "Codewalk: First-Class Functions in Go" .
تدعم لغة Go الدوال من الدرجة الأولى، والدوال ذات الرتبة العليا، وأنواع الدوال المُعرَّفة من قِبل المستخدم، والقيم الحرفية للدوال، والإغلاقات، وقيم الإرجاع المتعددة. تدعم هذه المجموعة الغنية من الميزات أسلوب البرمجة الوظيفية في لغة ذات كتابة قوية.
- ↑ "برنامج عملية مجتمع جافا (SM) - طلبات مواصفات جافا: JSRs - تفاصيل JSR# 241" . jcp.org .
- ↑ "تقرير لغة هاسكل لعام 2010" . تم الاطلاع عليه بتاريخ 7 ديسمبر 2011 .تعتمد معظم تطبيقات لغة هاسكل على معيار هاسكل 2010.
- ↑ "البرمجة الكائنية في جوليا" . 4 يونيو 2023.
في جوليا، لا تُعدّ البرمجة الكائنية محور التركيز الأساسي، بل تُركّز على الإرسال المتعدد، وهو مفهوم أعمّ. مع ذلك، يُمكن تحقيق البرمجة الكائنية في جوليا من خلال استخدام الأنواع والأساليب المركبة.
- ↑ "برمجة جوليا الكائنية التوجه" . 29 مايو 2021.
تدعم جوليا البرمجة الكائنية التوجه (OOP) بشكل جزئي فقط.
- ↑ "وثائق جوليا · لغة جوليا" . docs.julialang.org .
- ↑ "kotlin-script-examples/jvm/main-kts/MainKts.md at master · Kotlin/kotlin-script-examples" . GitHub .
- ↑ "أدوات بناء آمنة من حيث النوع" . مساعدة كوتلين .
- ↑ "M8 متوفر الآن!" 2 يوليو 2014.
كإطلالة أولية على إمكانيات Kotlin المستقبلية في مجال الانعكاس، يمكنك الآن الوصول إلى الخصائص ككائنات من الدرجة الأولى في Kotlin.
- ↑ "الروتينات الفرعية" . مساعدة كوتلين .
- ↑ يقدم كل من Halcyon (Inworldz) و Open Sims تطبيقات متوافقة مع وظائف إضافية.
- ↑ لا تحتوي لغة Lua على نوع "كائن" صريح (يتم استخدام نوع "جدول" الأكثر عمومية لتعريف الكائن)، ولكنها تحتوي على صيغة صريحة لاستدعاء أساليب الكائن
- ↑ تُرفق إصدارات البرامج بدليل مرجعي شامل للغة Lua، يُوضح قواعدها النحوية ودلالاتها بالكامل، بالإضافة إلى تطبيق مرجعي ومجموعة اختبارات. تُستخدم هذه الأدوات لإنشاء تطبيقات ومترجمات أخرى للغة Lua VM ، مثل Kahlua وLLVM-Lua.
- ↑ ISO/IEC 10514-1:1996
- ↑ ISO 7185
- ↑ دليل PHP ، الفصل 19. الفئات والكائنات (PHP 5) ،
- ↑ دليل PHP ، الفصل 17. الدوال
- ↑ "دليل مرجعي للغة PostScript" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 18 فبراير 2017. تم الاطلاع عليه بتاريخ 18 فبراير 2017 .
- ↑ "ميزات البرمجة الكائنية التوجه" . doc.rust-lang.org .
- ↑ كلابنيك، ستيف؛ نيكولز، كارول. "الماكرو" . لغة برمجة رست .
- ↑ "معايير المخطط" . standards.scheme.org .
- ↑ "معايير المخطط" . standards.scheme.org .
- ↑ "SML '97" . www.smlnj.org .
- ↑ "std.stdio - لغة برمجة D" . dlang.org .
- ↑ تعمل لغة Scala على آلة Java الافتراضية التي ترث منها معالجة استثناءات وقت التشغيل.
- يمكن لبرنامج gcc إصدار تحذيرات بشأن قيمة errno غير المُعالجة . عادةً ما تُصدر الإصدارات الأحدث من Visual Studio استثناءات عند فشل عمليات الإدخال/الإخراج عند استخدام stdio .
- ↑ يمكن تفعيل فحص الأخطاء بشكل كبير اختياريًا، ولكن بشكل افتراضي، لا يكون Perl آمنًا ضد الأعطال.
- ↑
set -eيُمكّن الإنهاء إذا كانت أي حالة خروج غير مُدققة غير صفرية. - ↑ البيانات مأخوذة من ماكونيل، ستيف (30 نوفمبر 2009). Code Complete . مطبعة مايكروسوفت. ص 100. ISBN 9780735636972.يُظهر عمود نسبة العبارات "النسب النموذجية لعبارات المصدر في العديد من لغات البرمجة عالية المستوى إلى الكود المكافئ في لغة C. النسبة الأعلى تعني أن كل سطر من الكود في اللغة المدرجة يحقق أكثر مما يحققه كل سطر من الكود في لغة C.
- ↑ نسبة اختبارات عدد الأسطر التي فازت بها كل لغة إلى عدد الأسطر التي فازت بها لغة C عند استخدام ميزة المقارنة في ماكلون، جون (14 نوفمبر 2012). "قياس طول الكود في 14 لغة" . مؤرشف من الأصل في 19 نوفمبر 2012.تم استخدام C gcc للغة C، وتم استخدام C++ g++ للغة C++، وتم استخدام FORTRAN G95 للغة FORTRAN، وتم استخدام Java JDK Server للغة Java، وتم استخدام Smalltalk GST للغة Smalltalk.
- ↑ فيليسين، ماتياس. حول القدرة التعبيرية للغات البرمجة . ESOP '90 الندوة الأوروبية الثالثة حول البرمجة. CiteSeerX 10.1.1.51.4656 .
- ↑ "كيفية قياس البرامج" . لعبة معايير لغات البرمجة . تم الاطلاع عليه بتاريخ 29-05-2018 .
- ↑ ماندلبروت، بينوا ب. (1982). الهندسة الكسورية للطبيعة ( طبعة منقحة). سان فرانسيسكو. ISBN 0-7167-1186-9. OCLC 7876824 .
{{cite book}}: CS1 maint: موقع الناشر مفقود ( رابط ) - ↑ "ماندلبروت" . لعبة قياس أداء لغات البرمجة . تم الاطلاع عليه بتاريخ 9 يوليو 2021 .
- ↑ "المعيار النهائي" . لعبة معايير لغات البرمجة . تم الاطلاع عليه بتاريخ 29-05-2018 .
- ↑ فالنتاين، إس إتش (نوفمبر 1974). "ملاحظات مقارنة حول Algol 68 وPL/I" . مجلة الكمبيوتر . 17 (4): 325-331 . doi : 10.1093/comjnl/17.4.325 .
- ^ “جامعة فريجي أمستردام” (PDF) .
للمزيد من القراءة
- سيزار، روكنت (1995). دليل لغات البرمجة: نظرة عامة ومقارنة . دار أرتيك هاوس. رقم ISBN 978-0-89006-812-0.
- مقارنات لغات البرمجة
